Оплата SMS через сервис a1agregator
Для приема SMS-платежей зарегистрируемся в сервисе a1agregator.ru. Зайдите по адресу http://www.a1agregator.ru и далее по ссылке Регистрация. Зарегистрироваться и стать партнером вы можете, заполнив форму, приведенную на рис. 3.5.
Рис. 3.5. Форма регистрации в сервисе a1agregator
Рис. 3.6. Создание нового платежного сервиса
При регистрации указывайте существующий номер телефона, т. к. при выводе платежей на этот номер приходит код подтверждения. После регистрации вам будет присвоен анонимный аттестат и вы сможете протестировать работу сервисов. Для снятия всех ограничений анонимного аттестата и запуска сервисов в "боевом" режиме вам необходимо будет пройти процедуру получения формального аттестата.
В дальнейшем вы также можете получить персональный аттестат и VIP-аттестат. После заполнения регистрационных данных и нажатия кнопки Сохранить вы автоматически попадаете в панель управления. Теперь вы сможете создать свой платежный сервис (вкладка А1 API). Откройте вкладку A1 API и нажмите ссылку Добавить сервис (рис. 3.6).
Укажите название нового сервиса, а также адрес скрипта-обработчика на вашем
сайте (рис. 3.7).
Рис. 3.7. Заполнение реквизитов нового платежного сервиса
Вы можете указать адрес дополнительного скрипта-обработчика: он будет вызываться, если основной по какой-либо причине не ответил. Нажмите кнопку Сохранить. Ваш первый платежный сервис готов. После создания платежного сервиса вы автоматически попадаете на страницу редактирования его параметров (рис. 3.8). Еще раз проверьте, верно ли вы указали данные. Теперь вам необходимо выбрать один или несколько префиксов для вашего нового сервиса. Префикс — это текст, который передается в SMS-сообщении: по нему определяется, кому именно принадлежит платежный сервис. Вы выбираете префикс первого уровня, имеющийся в системе, а затем сами прописываете к нему префикс второго уровня (не менее трех символов). В сумме префиксы первого и второго уровня составляют префикс, который отправляет абонент. Помимо префикса вы для повышения безопасности можете указать секретный ключ (делать это необязательно). Секретный ключ — это последовательность символов, которая кодируется по алгоритму MD5
и передается обработчику при помощи GET-запроса. Вновь попасть на страницу редактирования сервиса вы сможете, нажав на название нужного сервиса во вкладке А1 API. После указания всех необходимых параметров вы можете протестировать созданный сервис. В разделе тестирования сервиса укажите номер мобильного телефона абонента, оператора мобильной связи, короткий номер и текст сообщения. Система проведет имитацию отправки сообщения абонентом и передаст все
данные вашему скрипту-обработчику, после чего в специальном окне вы сможете просмотреть ответ вашего сервиса.
Рис. 3.8. Заполнение реквизитов нового платежного сервиса
После отправки пользователем SMS-сообщения на короткий номер, сервис a1agregator отправляет запрос на адрес, указанный в URL обработчика (в данном случае на адрес http://goodtovars.ru/prgreg/sms.php). Содержимое файла prgreg/sms.php приведено в листинге 3.27.
Примерный вид запроса:
http://goodtovars.ru/prgreg/sms.php?user_id=79283456789&num=1161&cost= 100&cost_rur=100&msg=1%2Bregs&skey=d41d8cd98f00b204e9800998ecf8427e&opera tor_id=112&date=2010-04-22+12%3A10%3A05& smsid=1282022226&msg_trans=1% 2Bregs&operator=operator& test=1&ran=5&try=1&country_id=4846&sign=74fb9b1b1535ae4ee02a606b541f1812
Здесь:
user_id — номер телефона отправителя SMS;
num — короткий номер (1161);
msg — сообщение (1+reg);
cost — сумма платежа;
smsid — ID платежа в системе a1agregator (1282022226).
После получения запроса URL-обработчик должен дать один из возможных ответов:
smsid:1282022226\nstatus:ignore\n"; или smsid1282022226\nstatus:reply\nkod:Пароль\nСообщение\n Здесь:
Пароль — код для входа;
Сообщение — сообщение, которое будет отправлено на телефон отправителя, естественно, содержащее код для входа.
Листинг 3.27
<?
// подключить файл настроек
require_once("../my.php");
// подключение к бд
require_once("../mybaza.php");
// проверить короткий номер и текст сообщения
if( $_GET[‘num’]!=SMS_NUMBER1 || $_GET[‘msg_trans’]!=SMS_MESSAGE1 )
{
// неверно
$smsid = $_GET[‘smsid’];
// ответ отрицательный echo "smsid:$smsid\n"; echo "status:ignore\n";
}
// ответ положительный
// все нормально – записать номер телефона и код в базу
else
{
$password= $_GET[‘smsid’];
$smsid = $_GET[‘smsid’]; echo "smsid:$smsid\n"; echo "status:reply\n"; echo "kod:$password\n"; echo "\n";
echo "Usluga oplachena.Kod=".$password."\n";
$query1="INSERT INTO oplata_reg SET data=’".date("Y-m-d H:i:s")."’,kod_ reg=’".$_GET[‘smsid’]."’,
phone=’".$_GET[‘user_id’]."’,activ=’no’ ";
$rez1=mysql_query($query1);
}
?>
Источник: Петин В. А., Сайт на AJAX под ключ. Готовое решение для интернет-магазина. — СПб.: БХВ-Петербург, 2011. — 432 с.: ил. + CD-ROM — (Профессиональное программирование)