Как вам помочь ?
Интеграция платежной системы в Advantshop по API
В этой статье рассмотрим, как разработчик может интегрировать платежную систему в Advantshop, если нужной системы нет в списке доступных интеграций.
Необходимые данные
Чтобы интегрировать платежную систему от поставщика услуги, необходимо, чтобы продавец (администратор магазина) мог указать в настройках следующие данные:
- Login — учетка/идентификатор в платежной системе;
- Password — пароль для создания платежной формы;
- PasswordNotify — пароль для уведомлений об оплате (может совпадать с Password, это определяется поставщиком платежной системы);
После оформления заказа по нажатию на кнопку "Оплатить заказ" ADVANTSHOP отправляет 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%;
- Vat10 — НДС по ставке 10%;
- Vat18 — НДС по ставке 18%;
- Vat20 — НДС по ставке 20%;
- Vat110 — НДС по ставке 10/110;
- Vat118 — НДС по ставке 18/118;
- 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 текст ошибки.
Теперь перейдем к интеграции вашего платежного модуля в систему ADVANTSHOP.
Тестирование и интеграция
Чтобы платежная система появилась в системе ADVANTSHOP, вам необходимо отправить на адрес partner@advantshop.net данные вашего платежного модуля:
- Название платежного модуля;
- URL — Внешний адрес куда ADVANTSHOP будет отправлять платежную форму;
- TestURL — Адрес для тестовых запросов на оплату, не обязательный, может быть заменено маркером IsTest в теле запроса
Готово, после этого наша команда свяжется с вами для завершения интеграции.
Другие статьи по теме
- Партнерская программа
- Подключение партнерской программы и шаблон партнерского купона
- Настройка партнерской программы
- Партнеры
- Отчеты
Тэги: интеграция, интеграция способа оплаты, интеграция платежной системы, разработка способа оплаты