1. Общая информация

Обмен информацией между интернет-магазином и платежной системой осуществляется по протоколу HTTP/HTTPS. Платежная система предоставляет ответы на запросы в формате JSON.

Схема взаимодействия:

1) Запрос на создание заказа от интернет-магазина.

2) Получение интернет-магазином ссылки для оплаты от платежной системы.

3) Интернет-магазин перенаправляет клиента на страницу оплату по полученной ссылке.

4) Клиент производит оплату.

5) Платежная система перенаправляет клиента на страницу о завершении оплаты или на страницу интернет-магазина.

 6) Платежная система уведомляет интернет-магазин POST-запросом на URL-адрес, переданный интернет-магазином при создании заказа.

 

Результат запроса: {

"status": 0, "desc": "OK", "data": {

"id": "aaaaa-aaaaaa-aaaa-aaaaaaa", "url": "https://.../"

             }

     }

Результат запроса:

{

"status": 0, "desc": "OK", "data": {

"PAYMENT_STATUS": "paid",

       }

 }

Возможные значения PAYMENT_STATUS:

o “paid” – оплата произведена успешно o “not_paid” – оплата не произведена

 Результат запроса:

 {

"status": 0, "desc": "OK", "data": {

"webmoney": "100.00", "webmoney_z": "3.30", "ekzt": "100.00", "yandex": "20.00"

      }

}

3. Обработка результата оплаты

После оплаты заказа покупателем на адрес, переданный в параметре PAYMENT_CALLBACK_URL будет отправлен POST-запрос. В запросе будут переданы параметры платежной формы и результат оплаты заказа.

Интернет-магазин должен обработать запрос оповещения о результате оплаты и вернуть ответ. Обработка запроса для интернет-магазина происходит также, как будто он получил POST- запрос от обычной HTML-формы, только вместо страницы он должен вернуть строку следующего содержания:

RESULT=OK

Или

 RESULT=RETRY&DESCRIPTION=Сервер временно недоступен

Параметр RESULT в ответе интернет-магазина должен содержать результат обработки запроса и может принимать одно из следующих значений:

OK — все в порядке, интернет-магазин обработал уведомление и принял заказ.

RETRY — интернет-магазин не может в данный момент обработать уведомление. Будет выполнен повторный запрос через некоторое время.

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

4. Защита платежной формы

Параметр PAYMENT_HASH формируется путем объединения значений всех остальных параметров формы в алфавитном порядке их имен (без учета регистра) с добавлением в конец «секретного ключа» интернет-магазина. Если форма содержит несколько полей с одинаковыми именами, такие поля сортируются в алфавитном порядке их значений. Полученное после объединения параметров и «секретного ключа» значение хешируется MD5 и его байтовое представление кодируется в Base64.

PAYMENT_HASH = Base64(Byte(MD5(Sort(Params) +SecretKey)));