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

Возврат к списку

1277991660_sms_oplata.jpg

Спонсор статьи - доска объявлений от 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("errvoid",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("errfalse",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("errhash",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//Текстсообщенияrawurlencodedbase64_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-2312:34:56//ДатарегистрацииСМСплатформой 
*/ 

#Обработкавходящегосообщения. 
#ДляполучениятекстасообщенияВампотребуетсяпроизвестиследующиеоперации: 
/* 
$message_text=rawurldecode($_POST['_sms_plain']);//УбратьURL-кодирование 
$message_text=base64_decode($message_text);//ПеревестиданныеизMIMEbase64 
$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 

#Функцияпередачиданных 

functionreturn_result($message,$is_error=false){ 
    if($is_error)exit("<SMSDERR>".stripslashes($message)."</SMSDERR>"); 
    exit("<SMSDOSTUP>".stripslashes($message)."</SMSDOSTUP>"); 
} 
?>

Данный скрипт заливаем в корень нашего сайта.

  • 4. Редактируем файл functions.php , в конце добавляем новую функцию, которая будет возвращать код для активации. Этот код будет отправлен пользователю на мобильный телефон.
<?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 переходим к списку проектов и запускаем режим тестирования.

1.jpg

Пример проверки. Вот тот самый код. Если тест прошел успешно, можно продолжать настройку скрипта, если выдает ошибку, проверьте сгенерированы ли у вас коды активации с административной панели CMS TestMaker.

2.jpg

  • 6. Переходим в административную панель TestMaker и редактируем сообщение, которое выдается пользователю, когда тест окончен.

Пример:

Для получения результатов теста необходимо отправить SMS. Отправьте смс с кодом ttiqtest на короткий номер 4443. Полученный код введите в форму.
По желанию можно добавить информатор стоимости сообщения. На сайте smsdostup в панели есть Скрипт показа тарифов на сайте. К скрипту прилагается подробная инструкция, по установке. Все. Скрипт смс обработчика подключен! При желании информатор стоимости смс сообщения можно запихнуть в слайдер.
>


Возврат к списку