Разработка PHP SDK для платежной системы PayOnline

Задача

Для упрощения внедрения в различные сервисы платежной системы PayOnline, создать набор инструментов разработки PHP.

Входные данные

На базе API нужно реализовать библиотеки для:

  • Передачи необходимой информации для совершения платежа 

  • Формирования ссылки для перехода на страницу выбора оплаты

  • Получения статусов оплаты   

Решение заключается в том, чтобы дать возможность пользователю заполнить веб-форму с набором необходимых полей, которые будут переданы в платежную систему на обработку. После чего API возвращает ссылку на оплату. При переходе на по ней, пользователь попадет на страницу с выбором способов оплаты. 

form_pay.jpg

Как это использовать?

Способ сбора вводных данных отдадим на откуп разработчику. Каждый решает использовать ему методы GET или POST. Главное ничего не забыть и правильно ассоциировать эти данные согласно документации.
Для работы SDK необходимо подключить библиотеку и создать экземпляр класса PayOnline, предать входные параметры методу Set(). Дальше получаем готовую ссылку для отправки запроса методом URL() и отправляем запрос методом Pay(). Пользователь будет перенаправлен на страницу совершения платежа.

Set($arFields) - метод принимает ассоциативный масив параметров необходимых для совершения платежа;

URL() - метод формирует url-ссылку на страницу оплаты, возвращает готовую строку url адреса, которую можно использовать для отправки запроса на сервер;

Pay() - метод принимает url-ссылку и после ее проверки осуществляет перенаправление на страницу https://secure.payonlinesystem.com/ru/payment/ .

В результате получаем следующий код:

// формирует масив входных данных
$arFields = array(
"MERCHANT_ID" => $_REQUEST["MerchantId"],
"ORDER_ID" => $_REQUEST["OrderId"],
"AMOUNT" => $_REQUEST["Amount"],
"CURRENCY" => $_REQUEST["Currency"],
"KEY_PRIVATE_SECURITY" => $_REQUEST["PrivateSecurityKey"],
"VALID_UNTIL" => date("Y-m-d H:i:s"),
"ORDER_DESCRIPTION" => $_REQUEST["OrderDescription"],
"URL_RETURN" => $_REQUEST["ReturnUrl"],
"URL_FAIL" => $_REQUEST["FailUrl"]
);
// подключает библиотеку
require "../lib/payonline.sdk.php";
// инициализация класса
$myPayonline = new Payonline;
//передает параметры свойствам обьекта
if ($myPayonline->Set($arFields))
{
// формирует URL
$url = $myPayonline->URL();
// перенаправляет URL
$myPayonline->Pay($url);
}

Результат

Исходный код и пример использования PHP SDK PayOnline можно увидеть тут