123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?php
- class smsfly extends SendDogProto {
- /**
- * Loads SMS-Fly service config
- *
- * @return void
- */
- public function loadSmsflyConfig() {
- $smsgateway = zb_StorageGet('SENDDOG_SMSFLY_GATEWAY');
- if (empty($smsgateway)) {
- $smsgateway = 'http://sms-fly.com/api/api.php';
- zb_StorageSet('SENDDOG_SMSFLY_GATEWAY', $smsgateway);
- }
- $smslogin = zb_StorageGet('SENDDOG_SMSFLY_LOGIN');
- if (empty($smslogin)) {
- $smslogin = '380501234567';
- zb_StorageSet('SENDDOG_SMSFLY_LOGIN', $smslogin);
- }
- $smspassword = zb_StorageGet('SENDDOG_SMSFLY_PASSWORD');
- if (empty($smspassword)) {
- $smspassword = 'MySecretPassword';
- zb_StorageSet('SENDDOG_SMSFLY_PASSWORD', $smspassword);
- }
- $smssign = zb_StorageGet('SENDDOG_SMSFLY_SIGN');
- if (empty($smssign)) {
- $smssign = 'InfoCentr';
- zb_StorageSet('SENDDOG_SMSFLY_SIGN', $smssign);
- }
- $this->settings['SMSFLY_GATEWAY'] = $smsgateway;
- $this->settings['SMSFLY_LOGIN'] = $smslogin;
- $this->settings['SMSFLY_PASSWORD'] = $smspassword;
- $this->settings['SMSFLY_SIGN'] = $smssign;
- }
- /**
- * Returns set of inputs, required for SMS-Fly service configuration
- *
- * @return string
- */
- public function renderSmsflyConfigInputs() {
- $inputs = wf_tag('h2') . __('SMS-Fly') . ' ' . wf_Link(self::URL_ME . '&showmisc=smsfly', wf_img_sized('skins/icon_dollar.gif', __('Balance'), '10', '10'), true) . wf_tag('h2', true);
- $inputs .= wf_TextInput('editsmsflygateway', __('SMS-Fly API address'), $this->settings['SMSFLY_GATEWAY'], true, 30);
- $inputs .= wf_TextInput('editsmsflylogin', __('User login to access SMS-Fly API'), $this->settings['SMSFLY_LOGIN'], true, 20);
- $inputs .= wf_TextInput('editsmsflypassword', __('User password for access SMS-Fly API'), $this->settings['SMSFLY_PASSWORD'], true, 20);
- $inputs .= wf_TextInput('editsmsflysign', __('SMS-Fly') . ' ' . __('Sign') . ' (' . __('Alphaname') . ')', $this->settings['SMSFLY_SIGN'], true, 20);
- $smsServiceFlag = ($this->settings['SMS_SERVICE'] == 'smsfly') ? true : false;
- $inputs .= wf_RadioInput('defaultsmsservice', __('Use SMS-Fly as default SMS service'), 'smsfly', true, $smsServiceFlag);
- return ($inputs);
- }
- /**
- * Sends all sms storage via sms-fly.com service
- *
- * @return void
- */
- public function smsflyPushMessages() {
- $result = '';
- $apiUrl = $this->settings['SMSFLY_GATEWAY'];
- $source = $this->safeEscapeString($this->settings['SMSFLY_SIGN']);
- $description = "Ubilling_" . zb_rand_string(8);
- $start_time = 'AUTO';
- $end_time = 'AUTO';
- $rate = 1;
- $lifetime = 4;
- $user = $this->settings['SMSFLY_LOGIN'];
- $password = $this->settings['SMSFLY_PASSWORD'];
- $allSmsQueue = $this->smsQueue->getQueueData();
- if (!empty($allSmsQueue)) {
- foreach ($allSmsQueue as $io => $eachsms) {
- $number = str_replace('+', '', $eachsms['number']); //numbers in international format without +
- $myXML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
- $myXML .= "<request>";
- $myXML .= "<operation>SENDSMS</operation>";
- $myXML .= ' <message start_time="' . $start_time . '" end_time="' . $end_time . '" lifetime="' . $lifetime . '" rate="' . $rate . '" desc="' . $description . '" source="' . $source . '">' . "\n";
- $myXML .= " <body>" . $eachsms['message'] . "</body>";
- $myXML .= " <recipient>" . $number . "</recipient>";
- $myXML .= "</message>";
- $myXML .= "</request>";
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $password);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_URL, $apiUrl);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml", "Accept: text/xml"));
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $myXML);
- $result .= curl_exec($ch);
- curl_close($ch);
- //remove old sent message
- $this->smsQueue->deleteSms($eachsms['filename']);
- }
- }
- }
- /**
- * Renders current SMS-Fly service user balance
- *
- * @return string
- */
- public function renderSmsflyBalance() {
- $result = '';
- $myXML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
- $myXML .= "<request>";
- $myXML .= "<operation>GETBALANCE</operation>";
- $myXML .= "</request>";
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_USERPWD, $this->settings['SMSFLY_LOGIN'] . ':' . $this->settings['SMSFLY_PASSWORD']);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_URL, $this->settings['SMSFLY_GATEWAY']);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml", "Accept: text/xml"));
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $myXML);
- $response = curl_exec($ch);
- curl_close($ch);
- $result .= wf_BackLink(self::URL_ME, '', true);
- $result .= $this->messages->getStyledMessage(__('Current account balance') . ': ' . $response, 'info');
- return ($result);
- }
- /**
- * Saves service settings to database
- *
- * @return void
- */
- public function saveSettings() {
- //SMS-Fly configuration
- if ($_POST['editsmsflygateway'] != $this->settings['SMSFLY_GATEWAY']) {
- zb_StorageSet('SENDDOG_SMSFLY_GATEWAY', $_POST['editsmsflygateway']);
- log_register('SENDDOG CONFIG SET SMSFLYGATEWAY `' . $_POST['editsmsflygateway'] . '`');
- }
- if ($_POST['editsmsflylogin'] != $this->settings['SMSFLY_LOGIN']) {
- zb_StorageSet('SENDDOG_SMSFLY_LOGIN', $_POST['editsmsflylogin']);
- log_register('SENDDOG CONFIG SET SMSFLYLOGIN `' . $_POST['editsmsflylogin'] . '`');
- }
- if ($_POST['editsmsflypassword'] != $this->settings['SMSFLY_PASSWORD']) {
- zb_StorageSet('SENDDOG_SMSFLY_PASSWORD', $_POST['editsmsflypassword']);
- log_register('SENDDOG CONFIG SET SMSFLYPASSWORD `' . $_POST['editsmsflypassword'] . '`');
- }
- if ($_POST['editsmsflysign'] != $this->settings['SMSFLY_SIGN']) {
- zb_StorageSet('SENDDOG_SMSFLY_SIGN', $_POST['editsmsflysign']);
- log_register('SENDDOG CONFIG SET SMSFLYSIGN `' . $_POST['editsmsflysign'] . '`');
- }
- }
- }
|