Как вам помочь ?
Интеграция платежной системы в Адвантшоп по API
В этой статье рассмотрим, как разработчик может интегрировать платежную систему в Адвантшоп, если нужной системы нет в списке доступных интеграций.
Необходимые данные
Чтобы интегрировать платежную систему от поставщика услуги, необходимо, чтобы продавец (администратор магазина) мог указать в настройках следующие данные:
- Login — учетка/идентификатор в платежной системе;
- Password — пароль для создания платежной формы;
- PasswordNotify — пароль для уведомлений об оплате (может совпадать с Password, это определяется поставщиком платежной системы);
После оформления заказа по нажатию на кнопку "Оплатить заказ" Адвантшоп отправляет POST запрос на внешний URL адрес. URL Адрес задается в настройках вашего платежного модуля.
Таблица формата данных
В таблице 1 ниже приведен формат данных, который используется в запросе:
| Поле | Тип | Описание |
|---|---|---|
| Login | строка | учетка в платёжной системе |
| Sum | дробное число с точкой и двумя знаками после | сумма заказа |
| OrderId | строка | номер заказа |
| Desc | строка | описание заказа |
| Receipt | json-строка | содержание заказа, отсылается, если включена настройка (подробнее ниже) |
| Signature | строка |
MD5 от строки: Login+":"+ Sum +":"+ OrderId+":"+(Receipt(если указано)+":")+Password |
| IsTest | Доступные значения: 1 | флаг отвечающий за тестовый режим работы. Если указан URL для тестовых запросов то, не выставляется. |
| SuccessUrl | строка | URL для перенаправления клиента в случае успеха |
| FailUrl | строка | URL для перенаправления клиента в случае ошибки |
| NotificationUrl | строка | URL получения уведомления об оплате |
| строка | Email пользователя (для извещения клиента о чеке) | |
| Phone | строка | телефон пользователя, если он указал (для извещения клиента о чеке) |
Элементы Receipt-json
Отправка данных чеков о покупке (Receipt) должна производится при условии, что соответствующая настройка включена продавцом (администратором магазина) в настройках вашего модуля.
Поле Receipt представляет собой коллекцию из элементов Receipt с полями:
- Name — строка;
- Sum — дробное число (запятая с 2 знаками после неё);
- Quantity — дробное число (запятая с 2 знаками после неё);
- Tax — строка, не обязательный параметр, возможные значения:
- None — не указано;
- VatWithout — без НДС;
- Vat0 — НДС по ставке 0%;
- Vat5 — НДС по ставке 5%;
- Vat7 — НДС по ставке 7%;
- Vat10 — НДС по ставке 10%;
- Vat20 — НДС по ставке 20%;
- Vat105 — НДС по ставке 5/105;
- Vat107 — НДС по ставке 7/107;
- Vat110 — НДС по ставке 10/110;
- Vat120 — НДС по ставке 20/120;
- PaymentMethod — строка, необязательный параметр. Возможные значения Признака способа расчёта:
- FullPrepayment — полная предоплата;
- Prepayment — частичная предоплата;
- Advance — аванс;
- FullPayment — полный расчет;
- PartialPayment — частичный расчет и кредит;
- Credit — кредит;
- CreditPayment — выплата по кредиту;
- PaymentObject — строка, необязательный параметр. Возможные значения Признака предмета расчёта:
- Commodity — товар;
- Excise — подакцизный товар;
- Job — работа;
- Service — услуга;
- GamblingBet — ставка в азартной игре;
- GamblingPrize — выигрыш в азартной игре;
- Lottery — лотерейный билет;
- LotteryPrize — выигрыш в лотерею;
- IntellectualActivity — результаты интеллектуальной деятельности;
- Payment — платеж;
- AgentCommission — агентское вознаграждение;
- Composite — несколько вариантов;
- Another — другое;
Пример:
[
{
"Name": "Наименование товара",
"Sum":999.99,
"Quantity":1,
"Tax":"Vat120",
"PaymentMethod":"FullPrepayment",
"PaymentObject":"Commodity"
},
{
"Name": "Наименование товара",
"Sum”:77.00,
"Quantity":1.5,
"Tax":"Vat120",
"PaymentMethod":"FullPrepayment",
"PaymentObject":"Commodity"
},
{
"Name": "Доставка",
"Sum":100.00,
"Quantity":1,
"Tax":"Vat120",
"PaymentMethod":"FullPrepayment",
"PaymentObject":"Service"
}
]
Нотификации
- На NotificationUrl мы ожидаем POST/GET запрос c форматом данных описанных в таблице 2:
| Поле | Тип | Описание |
|---|---|---|
| Sum | дробное число с точкой и двумя знаками после | сумма заказа Пример: 999.99 |
| OrderId | строка | номер заказа |
| Signature | строка | MD5 от строки: Sum+":"+OrderId+":"+PasswordNotification |
- На SuccessUrl мы ожидаем POST/GET запрос c форматом данных описанных в таблице 3:
| Поле | Тип | Описание |
|---|---|---|
| OrderId | строка | номер заказа |
На успешную операцию мы возвращаем ответ вида OK_{OrderId}, где OrderId номер заказа.
- На FailUrl мы ожидаем POST/GET запрос c форматом данных описанных в таблице 4:
| Поле | Тип | Описание |
|---|---|---|
| FailUrl | строка | номер заказа |
Ответ на операцию с ошибкой FAIL_{ OrderId }_{error}, где OrderId номер заказа, а error текст ошибки.
Теперь перейдем к интеграции вашего платежного модуля в систему Адвантшоп.
Тестирование и интеграция
Чтобы платежная система появилась в системе Адвантшоп, вам необходимо отправить на адрес partner@advantshop.net данные вашего платежного модуля:
- Название платежного модуля;
- URL — Внешний адрес куда Адвантшоп будет отправлять платежную форму;
- TestURL — Адрес для тестовых запросов на оплату, не обязательный, может быть заменено маркером IsTest в теле запроса
Готово, после этого наша команда свяжется с вами для завершения интеграции.
Другие статьи по теме
Тэги: интеграция, интеграция способа оплаты, интеграция платежной системы, разработка способа оплаты