Подключение внешнего способа оплаты (для разработчиков интеграций)

Материал из Insales Wiki
Перейти к: навигация, поиск

Специальный способ оплаты создается в разделе Настройки -> Оплата.

Настройки на стороне InSales:

   shop_id - идентификатор магазина в вашей системе.
   password - пароль для генерации подписи.
   url - адрес внешнего сервиса, куда будет отправлен покупатель.


На последнем шаге заказа, система InSales отправляет на внешний URL (задается в настройках внешнего способа оплаты в InSales) POST запросом следующие параметры:

   shop_id - идентификатор магазина в вашей системе
   amount - сумма
   transaction_id - id транзакции
   key - ключ заказа
   description - описание заказа
   order_id - id заказа
   phone - телефон клиента,
   email - email клиента,
   signature: Подпись. Формируется как MD5 от "shop_id;amount;transaction_id;key;description;order_id;phone;email;password"

После обработки платежа, внешний сервис возвращает на success_url или fail_url c параметрами:

1) success-контроллер ожидает POST запрос со следующими параметрами:

   paid: Оплачен или нет. "1" или "0".
   amount: Сумма платежа. Например, "87.10", или "1200.00".
   key: Ключ идентификации заказа. Изначально был отправлен InSales.
   transaction_id - id транзакции. Изначально был отправлен InSales.
   signature: Подпись. Формируется как MD5 от "shop_id;amount;transaction_id;key;paid;password".
   shop_id: Идентификатор магазина.

Сохраняет данные, проверяет подпись, сумму, параметр paid и shop_id. Дальше помечает заказ как успешный.

2) fail только сохраняет данные.

Конкретные success_url и fail_url берутся из настроек способа оплаты или можно использовать эти настройки для удобства:

http://shop.myinsales.ru/payments/external/success

http://shop.myinsales.ru/payments/external/fail

3) http://shop.myinsales.ru/payments/external/server

Возможно уведомление о результатах оплаты с сервера платежной системы.
   paid: Оплачен или нет. "1" или "0".
   amount: Сумма платежа. Например, "87.10", или "1200.00".
   key: Ключ идентификации заказа. Изначально был отправлен InSales.
   transaction_id - id транзакции. Изначально был отправлен InSales.
   signature: Подпись. Формируется как MD5 от "shop_id;amount;transaction_id;key;paid;password".
   shop_id: Идентификатор магазина.

Сохраняет данные, проверяет подпись, сумму, параметр paid и shop_id. Дальше помечает заказ как успешный. Возвращает json 'status' => 'ok' в случае подтверждения 'status' => 'error', 'errors' => Одну или несколько ошибок из списка

   'transaction not found'
   'data is empty'
   'data is not a hash'
   'signature is not valid'
   'paid params is not valid'
   'shop id is not valid' 
   'amount is not valid'