![]() |
Cмс билинг вопрос.
Есть ли смс билинги. На каком не нужно иметь url обработчик. Тоесть где можно и без ниво обойтися. Есть такиє билинги ? Там де тупо вводиш текст и он приходит отправителю смс. ?????
|
да есть, лови, аж целых 10:
билинги билинги билинги билинги билинги билинги билинги билинги билинги билинги |
Да в правду есть такиє.
|
Цитата:
|
Поделитись хто нибуть сервисом. Можно и в пм.
|
поставь заглушку с ответом =\ обычный хтмл файл
|
Цитата:
Тогода вроде мне не будут зачислять смски. Например на смсдоступ |
будут, если ты поставишь отвтет, который требует биллинг.
|
# Задаем ключ (идентификатор) проекта, который указан в разделе 'Список проектов' в вашем аккаунте $project_md5 = '';Тоесть
<?php # СМС-Доступ 2008 # Скрипт для ответа на запрос Биллинга # Вывод ошибок нежелателен ini_set('display_errors', 0); error_reporting(0); # Задаем ключ (идентификатор) проекта, который указан в разделе 'Список проектов' в вашем аккаунте $project_md5 = ''; # Задаем рабочую кодировку в которой вы указываете ответ абоненту $encoding = 'windows-1251'; # Читаем POST запрос, получаем XML данные if (!isset($HTTP_RAW_POST_DATA)) $HTTP_RAW_POST_DATA = file_get_contents('php://input'); if (!$HTTP_RAW_POST_DATA) return_result('err void', true); # Обрабатываем данные $request_data = xml2array($HTTP_RAW_POST_DATA); # Проверяем данные if (!is_array($request_data) || !isset($request_data['sms']['md5']) || !isset($request_data['sms']['session']) || !isset($request_data['sms']['smsid']) || !isset($request_data['sms']['shortcode']) || !isset($request_data['sms']['text']) || !isset($request_data['sms']['cost']) || !isset($request_data['sms']['phone']) || !isset($request_data['sms']['operator'])) return_result('err data', true); if (!$request_data['sms']['md5'] || !$request_data['sms']['session'] || !$request_data['sms']['smsid'] || !$request_data['sms']['shortcode'] || !$request_data['sms']['text'] || !$request_data['sms']['cost'] || !$request_data['sms']['phone'] || !$request_data['sms']['operator']) return_result('err false', true); # Проверяем целостность данных $_md5hash = md5($project_md5.$request_data['sms']['session'].$request_data['sms']['smsid'].$request_data['sms']['shortcode'].iconv('utf-8', 'windows-1251', $request_data['sms']['operator']).$request_data['sms']['phone'].iconv('utf-8', 'windows-1251', $request_data['sms']['text']).$request_data['sms']['cost']); if ($_md5hash != $request_data['sms']['md5']) return_result('err hash', true); /* Напоминаем, что в случае наличия параметра isdebug производится ТЕСТИРОВАНИЕ проекта, если Вы ведете внутренние учеты, зачисляете средства и так далее - учтите, эти запросы нами не оплачиваются! */ # Возвращаем результат и завершаем работу # Сообщение должно быть в кодировке указанной в параметре $encoding выше, по-умолчанию windows-1251 return_result( 'Здесь должен быть Ваш ответ клиенту' ); # Делаем все необходимые учеты, проверки и определяем ответ абоненту /* Входящие данные (даны исключительно для ознакомления и не являются действительными): <isdebug>true</isdebug> // Параметр тестирования проекта, по-умолчанию не передается <md5>a123456789b123456789c123456789d1</md5> // Ключ проверки целостности данных <session>a123456789b123456789c123456789d1</session> // Ключ текущей сессии <smsid>1234567890</smsid> // Уникальный идентификатор смс сообщения <shortcode>1234</shortcode> // Короткий номер на который прислано смс сообщение <operator>Megafon</operator> // Название оператора, латиница, короткое <operatorfull>Megafon_moscow</operatorfull> // Название оператора, латиница, полное <phone>7912xxxx345</phone> // Номер абонента приславшего смс сообщение <country>ru</country> // Страна абонента приславшего смс сообщение <text>ttslovo</text> // Полный текст сообщения <cost>12.34</cost> // Ваша прибыль с данного смс сообщения в системе СМС Доступ в рублях <exchangerate>23.00</exchangerate> // Текущий курс отношения рубля к доллару в системе СМС Доступ <trusted>3</trusted> // Опциональный параметр, с указанием доверия номеру абонента в виде цифры от 0 до 10 */ # Запрос передается в формате utf-8 # Для получения текста сообщения в кодировке Windows-1251 воспользуйтесь функцией iconv(): # $result_text = iconv('utf-8', 'windows-1251', $request_data['sms']['text']); # Ваша проверка данных и учет в системе # ! В случае если получен параметр _is_debug, то учет в системе делать не следует. Был произведен тест скрипта на работоспособность. # Выдаем ответ для передачи клиенту # ! Учтите обязательность наличия корректного xml формата # ! При ответе используйте кодировку utf-8 # Возвращаем результат в формате XML function return_result($msg, $iserror = false) { global $encoding; # Success message if (!$iserror) { echo '<?xml version="1.0" encoding="UTF-8"?> <Response> <Status>OK</Status> <ReturnMessage>'.($encoding ? iconv($encoding, 'utf-8', $msg) : $msg).'</ReturnMessage> </Response>'; # Error message } else { echo '<?xml version="1.0" encoding="UTF-8"?> <Response> <Status>ERROR</Status> <ErrorMessage>'.($encoding ? iconv($encoding, 'utf-8', $msg) : $msg).'</ErrorMessage> </Response>'; } exit; } # Перевод XML данных в массив function xml2array($xml) { $_data = NULL; $xp = xml_parser_create(); xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, false); xml_parser_set_option($xp, XML_OPTION_SKIP_WHITE, true); xml_parse_into_struct($xp,$xml,$vals,$index); xml_parser_free($xp); $temp = $depth = array(); $dc = array(); foreach($vals as $value) { $p = join('::', $depth); $key = $value['tag']; switch ($value['type']) { case 'open': array_push($depth, $key); array_push($depth, (int)$dc[$p]++ ); break; case 'complete': array_pop($depth); array_push($depth, $key); $p = str_replace("::0::","::",join('::',$depth)); $temp[$p] = $value['value']; array_pop($depth); array_push($depth, (int)$dc[$p] ); break; case 'close': array_pop($depth); array_pop($depth); break; } } foreach ($temp as $key=>$value) { $levels = explode('::',$key); $num_levels = count($levels); if ($num_levels==1) { $_data[$levels[0]] = $value; } else { $pointer = &$_data; for ($i=0; $i<$num_levels; $i++) { if ( !isset( $pointer[$levels[$i]] ) ) { $pointer[$levels[$i]] = array(); } $pointer = &$pointer[$levels[$i]]; } $pointer = $value; } } return ($_data); } ?> |
Мне просто ввести сюда клч проекта
# Задаем ключ (идентификатор) проекта, который указан в разделе 'Список проектов' в вашем аккаунте $project_md5 = '' и закинуть на сайт ??? |
| Время: 05:03 |