Skip to content
msp3WebPay
Приём оплаты через WEBPAY для MiniShop3: карта, ERIP, холд, webhook и возврат покупателя
  • MODX 3
  • PHP 8.2
  • miniShop3
  1. Компоненты
  2. msp3WebPay
  3. Интеграция и сценарии

Интеграция msp3WebPay

Шаги установки: Быстрый старт.

Как проходит оплата

СпособЗапросЧто делает
Оплата через WebPay (карта)POST /api/v1/payment_standardСписание сразу
Оплата через WebPay (ERIP)POST /api/v1/payment_EripНомер заказа с префиксом WP-
Оплата через WebPay (двухстадийная)тот же платёжный APIХолд. Уведомление payment_type=4 ставит authorized

send() отдаёт ссылку на оплату, номер платежа wt и номер заказа wsb_order_num. В попытке сохраняются wt и webpay_order_num. После webhook добавляется transaction_id.

Если JSON-адрес создания платежа отвечает 404, пакет отправляет ту же заявку обычной формой на securesandbox.webpay.by или payment.webpay.by. Адрес /api/v1/payment пакет не использует. Туда WEBPAY ждёт зашифрованные данные карты.

Webhook

Один адрес в кабинете:

text
https://ваш-домен.ru/assets/components/msp3webpay/webhook.php

Это форма. Подпись wsb_signature считается по правилам WEBPAY (MD5). Пакет пробует вариант с полем карты и без него.

payment_typeОбычная оплата и ERIPХолд
1, Completedpaidpaid
4, Authorizedpaidauthorized
2 и 8, отказfailedfailed
5 и 9, возвратrefundedrefunded
7 и 11, отменаcancelledcancelled

Статус заказа после этого ставят ms3_status_paid, ms3_payment_on_failed_status и ms3_payment_on_refunded_status.

Публичного запроса статуса у WEBPAY нет. Кнопка синхронизации смотрит только попытки, уже записанные на сайте.

Возврат покупателя

return.php перенаправляет браузер на success_url или fail_url. Статус заказа эта страница не ставит. Оплату подтверждает только webhook.

Списание, отмена и возврат

Пакет входит в кабинет: POST /api/login, в ответе токен. Тестовый хост https://sandbox.webpay.by. Боевой https://billing.webpay.by. Нужны msp3webpay_api_username и msp3webpay_api_password.

ДействиеЗапросЧто дальше
Списать холдPOST /api/v1/transactions/completeЗаказ отмечается оплаченным
Отменить холдPOST /api/v1/transactions/cancelПопытка отменяется
Вернуть после оплатыPOST /api/v1/transactions/cancelПопытка помечается возвратом

Пока попытка в authorized, возврат не уходит. Сначала спишите холд.