Оплата закрытых публикаций SMS сообщениями через
https://cp.payy.ru
Регистрация простая на payy.ru
Имеются протоколы настройки:
Инициализация платежа осуществляется посредством отправки HTTP запроса методом GET или POST по адресу
https://cp.payy.ru/mobile/get.php
В запросе передаются следующие параметры:
Переменная | Описание переменной | Тип | Пример значения |
id | ID проекта, одобренного в личном кабинете Партнера | integer | 12345 |
number | Мобильный номер Абонента | string | 79859694999 |
sum | Сумма к оплате | float | 135.00 |
param | Массив данных, направленных Партнером при инициализации платежа | array | param=array('prm' => 'ind') |
md5 | Дайджест запроса | string | d2c12fd82ddaa2da1e675c70228d33a1 |
Дайджест запроса рассчитывается из параметров запроса, которые задаются в строго указанном порядке:
md5 = id + number + sum + secret_key
Ответ сервиса передается в формате JSON. В случае успешного проведения транзакции, в объекте передается 2 параметра:
1. Статус транзакции;
2. Описание.
В случае успешного проведения транзакции, в объекте передается статус 200, а в описании передается идентификатор транзакции.
ПРИМЕР: {"200":"12345"}
В случае ошибки, передается код ошибки с кратким описанием. Возможные коды ошибки и их описание:
Номер ошибки | Название ошибки | Описание ошибки |
400 | Unknown id | Передан неверный параметр id |
401 | Unknown number | Отсутствует номер Абонента |
402 | Unknown message | Не переданы данные в поле описание платежа |
403 | Unknown sum | Не указана сумма для оплаты |
404 | Unknown md5 | Не передан, либо неверный параметр дайджеста запроса |
405 | Service Unavailable | Сервисная ошибка при проведении платежа |
406 | Error number | Ошибка в номере |
ПРИМЕР: {"406":"Error number"}
ЗАВЕРШЕНИЕ ТРАНЗАКЦИИ
Обращение к динамическому обработчику осуществляется посредством отправки HTTP запроса методом POST.
Платформа PAYY передает обработчику следующие параметры:
Переменная | Описание переменной | Тип | Пример значения |
id | ID проекта, одобренного в личном кабинете Партнера | integer | 12345 |
transaction | Идентификатор транзакции в системе | integer | 12345 |
number | Мобильный номер Абонента | string | 79859694999 |
sum | Сумма к оплате | float | 135.00 |
md5 | Дайджест запроса | string | d2c12fd82ddaa2da1e675c70228d33a1 |
country | Код страны | integer | 1234 |
operator | Код оператора | integer | 4567 |
pay | Доход Партнера (отчисления в валюте страны) | float | 100.50 |
param | Массив данных, направленных Партнером при инициализации платежа | array | param=array('prm' => 'ind') |
Дайджест запроса рассчитывается из параметров запроса, которые задаются в строго указанном порядке:
md5 = id + number + sum + secret_key
полученный результат посылается для проверки целостности в параметре md5.
Пример скрипта, дающего ответ в кодировке utf-8 в формате JSON объекта с ключом status:
Код: пример скрипта, дающего ответ в кодировке utf-8 в формате JSON объекта с ключом status |
|
1 2 3 4 5 |
<?php header("Content-Type: text/plain; charset=utf-8"); $arrParam = array("status" => "200"); exit(json_encode($arrParam)); ?> |
Пример обработчика с использованием секретного кода и проверкой целостности запроса:
Код: обработчик с использованием секретного кода и проверкой целостности запроса |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php if(isset($_POST['id'], $_POST['number'], $_POST['country'], $_POST['operator'], $_POST['sum'], $_POST['pay'], $_POST['md5'])) { $service_id = 12345; $secret_key = '6dfgmEW98vmWEbdfe3'; $md5 = md5($service_id.$_POST['number'].$_POST['sum'].$secret_key); if(strcasecmp($md5, $_POST['md5']) == 0) { header("Content-Type: text/plain; charset=utf-8"); $arrParam = array("status" => "200"); exit(json_encode($arrParam)); } } ?> |
$service_id - ID проекта, одобренного в личном кабинете Партнера
Передача объекта со статусом 200 считается успешным.
Система поддерживает повторную отправку запроса в случае, если при его передаче произошло одно из следующих событий:
• Время ожидания ответа от внешнего сервера истекло. Максимальное время ожидания ответа 20 секунд;
• Web-сервером возвращен код ошибки, т.е. любой код, отличный от 200;
• Ответ был некорректным: отсутствовал текст ответного сообщения.
ПРОВЕРКА СТАТУСА ТРАНЗАКЦИИ
Проверка статуса платежа осуществляется посредством отправки HTTP запроса методом GET или POST по адресу
https://cp.payy.ru/mobile/status.php
Партнер передает следующие параметры для проверки статуса операции:
Переменная | Описание переменной | Тип | Пример значения |
transaction | Идентификатор транзакции в системе | integer | 12345 |
id | ID проекта, одобренного в личном кабинете Партнера | integer | 12345 |
number | Мобильный номер Абонента | string | 79859694999 |
md5 | Дайджест запроса | string | d2c12fd82ddaa2da1e675c70228d33a1 |
Дайджест запроса рассчитывается из параметров запроса, которые задаются в строго указанном порядке:
md5 = id + number + sum + secret_key
Переменная | Описание переменной | Тип | Пример значения |
id | ID проекта, одобренного в личном кабинете Партнера | integer | 12345 |
number | Мобильный номер Абонента | string | 79859694999 |
sum | Сумма к оплате | float | 135.00 |
secret_key | Секретный код, указанный в личном кабинете Партнера | string | GK$rg(#edERF |
Ответ сервиса передается в формате JSON. В случае успешного проведения транзакции, в объекте передается 2 параметра.
В случае успешного проведения транзакции, в объекте передается статус 200, со значением success.
ПРИМЕР: {"200":"success"}
В случае отказа от транзакции передается статус 400 со значение pending.
ПРИМЕР: {"400":"pending"}
Добавить данный фукционал возможно?
а почему нет? люди же добавляют нечто подобное http://codeseller.ru/products/wp-sms-geteway-sms-shlyuz-dlya-wordpress-woocommerce-i-wp-recall/
Ух ты, прикольно