Подключаем смс оплату к CMS TestMaker

Спонсор статьи – доска объявлений от qwef.ru Купи участок в подмосковье.
Здравствуйте в этой статье мы рассмотрим пример подключения шлюза smsdostup.ru к движку для создания онлайн тестирований CMS TestMaker .
Итак поэтапно распишем, что нужно сделать что бы подключить смс оплату:
1. Регистрируемся на сайте СМС Доступ.
2. После регистрации добавляем новый проект. Для тестирования движка, я зарегистрировал домен myiq.su . Процесс добавления проекта достаточно прост, не буду его описывать. После, система пришлет на ваш почтовый адрес хэш код созданного проекта. Этот код будет использоваться в обработчике.
3. Вставляем идентификатор в скрипт и сохраняем его, например sms.php
<?php
// Инклудим нужные функции
// Соединяемся с базой
include("bd.php");
// подключаем функции
include("functions.php");
# Вывод ошибок нежелателен
ini_set('display_errors', 0);
error_reporting(0);
# Задаем ключ (идентификатор) проекта, который указан в разделе 'Список проектов' в вашем аккуанте
$project_md5 = "Ваш идентификатор";
# Проверяем наличие данных
if (!isset($_POST['_md5_hash']) || !isset($_POST['_session_code']) || !isset($_POST['_sms_id']) || !isset($_POST['_sms_number']) || !isset($_POST['_sms_operator']) || !isset($_POST['_sms_phone']) || !isset($_POST['_sms_message']) || !isset($_POST['_sms_price']) || !isset($_POST['_sms_message'])) return_result("err void", true);
if (!$_POST['_md5_hash'] || !$_POST['_session_code'] || !$_POST['_sms_id'] || !$_POST['_sms_number'] || !$_POST['_sms_operator'] || !$_POST['_sms_phone'] || !$_POST['_sms_price']) return_result("err false", true);
# Проверяем целостность данных
$_md5hash = md5($project_md5.$_POST['_session_code'].$_POST['_sms_id'].$_POST['_sms_number'].$_POST['_sms_operator'].$_POST['_sms_phone'].stripslashes($_POST['_sms_message']).$_POST['_sms_price']);
if ($_md5hash != $_POST['_md5_hash']) return_result("err hash", true);
/* Напоминаем, что в случае наличия параметра _is_debug производится ТЕСТИРОВАНИЕ проекта,
если Вы ведете внутренние учеты, зачисляете средства и так далее - учтите, эти запросы нами не оплачиваются! */
# Возвращаем результат и завершаем работу
$key =GetKey();
$text = "Код активации: ".$key;
return_result($text);
# Делаем все необходимые учеты, проверки и определяем ответ абоненту
/*
Входящие данные (даны исключительно для ознакомления и не являются действительными):
_is_debug = 1 // Параметр тестирования проекта, по-умолчанию не передается
_md5_hash = a123456789b123456789c123456789d1 // Ключ проверки целостности данных
_session_code = a123456789b123456789c123456789d1 // Ключ текущей сессии
_sms_id=1234567890 // Уникальный идентификатор смс сообщения
_sms_number=1234 // Короткий номер на который прислано смс сообщение
_sms_operator=Megafon // Название оператора, латиница, короткое
_sms_operator_full=Megafon_moscow // Название оператора, латиница, полное
_sms_phone=7912xxxx345 // Номер абонента приславшего смс сообщение
_sms_country=ru // Страна абонента приславшего смс сообщение
_sms_message=ttslovo // Полный текст сообщения
_sms_plain=dHRzbG92bw%3D%3D // Текст сообщения rawurlencoded base64_encoded в кодировке utf-8
_sms_price=12.34 // Ваша прибыль с данного смс сообщения в системе СМС Доступ в рублях
_sms_exchrate=25.00 // Текущий курс отношения рубля к доллару в системе СМС Доступ
_sms_trusted=3 // Опциональный параметр, с указанием доверия номеру абонента в виде цифры от 0 до 10
_abonent_price=2.87 // Параметр указывающий стоимость смс для абонента в валюте указанной в параметре _abonent_price_currency
_abonent_price_currency=RUR // Параметр указывает валюту в которой было произведено списание с абонента за отправленную смс
_sms_parts=1 // Опциональный параметр, указывающий на количество частей из которых состояло смс сообщение
В случае, если параметр _sms_parts присутствует и он больше единицы, то будет произведена тарификация соответственно количеству смс полученных от абонента.
Сумма в параметре _sms_price будет иметь значение полученное по формуле: кол-во_смс * стоимость_смс.
Параметр _abonent_price будет показывать стоимость 1 смс сообщения вне зависимости от количества полученных частей.
_sms_operator_id=1 // Уникальный идентификатор оператора в системе СМС Доступ
_spec_id=1 // Указание на источник запроса, используется в проверке уникальности, целое число, может быть 0
_sms_date=2009-01-23 12:34:56 // Дата регистрации СМС платформой
*/
# Обработка входящего сообщения.
# Для получения текста сообщения Вам потребуется произвести следующие операции:
/*
$message_text = rawurldecode($_POST['_sms_plain']); // Убрать URL-кодирование
$message_text = base64_decode($message_text); // Перевести данные из MIME base64
$message_text = iconv("utf-8", "cp1251", $message_text); // Поменять кодировку с utf-8 на cp1251
$message_text = stripslashes($message_text); // Удалить возможные слэш символы
*/
# Для большего удобства так же передается параметр _sms_message в котором все эти действия уже произведены,
# но если же сообщения приходящие Вам достаточно большие, включают в себя спец символы и русский язык, то лучше работать с параметром _sms_plain
# Ваша проверка данных и учет в системе
# ! В случае если получен параметр _is_debug, то учет в системе делать не следует. Был произведен тест скрипта на работоспособность.
# ! вернуть ответ в случае наличия параметра _is_debug необходимо в следующем формате <SMSDOSTUP>OK</SMSDOSTUP>
# Выдаем ответ для передачи клиенту
# ! Учтите обязательность наличия открывающегося <SMSDOSTUP> и закрывающегося </SMSDOSTUP> тегов
# Содержимое внутри тегов и будет передано клиенту, в случае неверного формата ответа, смс не будет засчитана
# При ответе используйте кодировку Windows-1251
# Функция передачи данных
function return_result($message, $is_error = false) {
if ($is_error) exit("<SMSDERR>".stripslashes($message)."</SMSDERR>");
exit("<SMSDOSTUP>".stripslashes($message)."</SMSDOSTUP>");
}
?>
Данный скрипт заливам в корень нашего сайта.
4. Редактируем файл functions.php , в конце добавляем новую функцию, которая будет возвращать код для активации. Этот код будет отправлен пользователю на мобильный телефон.
/* Получаем ключ при успешной отправке смс 02.01.2012*/
Function GetKey(){
$result = mysql_query ("SELECT * FROM key_list WHERE flag='0'");
$myrow = mysql_fetch_array ($result);
return $myrow['single_key'];
}
5. Проверяем, как работает созданный обработчик. В личном кабинете на SmsDostup переходим к списку проектов и запускаем режим тестирования.
Пример проверки. Вот тот самый код. Если тест прошел успешно, можно продолжать настройку скрипта, если выдает ошибку, проверьте сгенерированы ли у вас коды активации с административной панели CMS TestMaker.
6. Переходим в административную панель TestMaker и редактируем сообщение, которое выдается пользователю, когда тест окончен. Пример:
Для получения результатов теста необходимо отправить SMS. Отправьте смс с кодом ttiqtest на короткий номер 4443. Полученный код введите в форму.
По желанию можно добавить информатор стоимости сообщения. На сайте smsdostup в панели есть Скрипт показа тарифов на сайте. К скрипту прилагается подробная инструкция, по установке.
Все. Скрипт смс обработчика подключен! При желании информатор стоимости смс сообщения можно запихнуть в слайдер.
Посты:
Прокомментировать
Подписаться на обновления
Рубрики
- 1С
- Bitrix
- CMS
- CSS
- Human Emulator
- Javascript
- JQuery
- Life
- PHP
- SEO
- SEO news
- SEO сцена
- VPS
- Windows
- Без рубрики
- Жизнь
- Интервью
- Конкурсы
- Мануалы
- Математика
- Новости
- Планы
- Покупаем
- Сайты
- Софт
- Юзабилити
Архив
- Февраль 2012
- Январь 2012
- Декабрь 2011
- Ноябрь 2011
- Октябрь 2011
- Сентябрь 2011
- Июль 2011
- Июнь 2011
- Май 2011
- Апрель 2011
- Март 2011
- Февраль 2011
- Январь 2011
- Декабрь 2010
- Ноябрь 2010
- Октябрь 2010
- Сентябрь 2010
- Август 2010
- Июль 2010
- Июнь 2010
- Май 2010
- Апрель 2010
- Март 2010
- Февраль 2010
- Январь 2010
admin



