Skip to content
msp3AlfaBank
Приём оплаты через Альфа-Банк для MiniShop3: ссылка на оплату, callback, одно- и двухстадийная схема
  • MODX 3
  • PHP 8.2
  • miniShop3
  1. Компоненты
  2. msp3AlfaBank
  3. Интеграция и сценарии

Интеграция msp3AlfaBank ​

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

Запросы к банку ​

ДействиеЗапрос банкаКогда
Обычная оплатаregister.doСпособ Оплата через Альфа-Банк
ХолдregisterPreAuth.doСпособ Оплата через Альфа-Банк (двухстадийная)
Узнать статусgetOrderStatusExtended.doКолбэк и кнопка «Синхронизировать»
Списать холдdeposit.doВкладка заказа, статус блокировки
Отменить холдreverse.doДо списания
Вернуть деньгиrefund.doПосле списания. Сумму вводите в рублях, пакет переводит в копейки

В каждом запросе уходят логин и пароль. Отдельной подписи колбэка у банка нет.

Webhook ​

Адрес на сайте:

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

Пакет кладёт тот же адрес в платёж при создании ссылки. В кабинете банка укажите его ещё раз. JSON-адрес ядра MiniShop3 для этого колбэка не подходит.

Обработчик не читает статус из тела колбэка. Он запрашивает getOrderStatusExtended.do по номеру платежа банка или по номеру заказа в пакете.

Код банкаЧто этоПопытка оплаты
2Деньги списаныpaid
1Деньги заблокированыauthorized
6Отказfailed
3Холд отменёнcancelled
4Возвратrefunded
0Платёж только зарегистрированпакет пропускает

После списания MiniShop3 ставит заказу ms3_status_paid. Неуспех: ms3_payment_on_failed_status (по умолчанию 0, статус не меняется). Полный возврат: ms3_payment_on_refunded_status (по умолчанию 5).

Без логина и пароля в properties способа и в системных ключах webhook отвечает 401. Логин и пароль из тела колбэка не проверяются. Пустое тело или нет mdOrder и orderNumber: HTTP 200, JSON с полем message = empty (не сырой текст).

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

ЧтоЗначение
Номер попытки{номер заказа}-{случайная строка}
Покупатель уходит наformUrl
Текст платежаOrder #<номер>, не длиннее 100 символов
Язык страницы оплатыlanguage = ru

Пока колбэк не пришёл, синхронизация ищет платёж по номеру попытки.

Событие msp3AlfaBankOnProviderEvent получает ответ getOrderStatusExtended.do, не сырое тело колбэка. Строки лога начинаются с [msp3AlfaBank].

Заказ дешевле 1 копейки пакет на оплату не отправляет.

Вкладка заказа ​

Плагин msp3alfabank_bootstrap подключает вкладку для способов с классом Msp3AlfaBank\Payment\ и для устаревшего MspAlfaBank\Payment\. Список попыток отдаёт connector: действие mgr/getlist.

После блокировки заказ ещё не оплачен. Спишите холд, тогда MiniShop3 отметит оплату. Отменить холд шлёт только reverse.do в банк. Попытка остаётся authorized. Статус заказа меняет MiniShop3 после колбэка и lifecycle. Возврат доступен после списания.

Пока попытка ждёт оплату или деньги только заблокированы, вкладка возврат не отправляет. Сначала нужен колбэк или списание.

ДействиеЗапросЧто нужно
СинхронизироватьgetOrderStatusExtended.doНомер платежа банка или номер попытки
Списать холдdeposit.doНомер платежа банка, статус блокировки
Отменить холдreverse.doНомер платежа банка
Возвратrefund.doНомер платежа банка

Синхронизировать без настроенных логина и пароля не ходит в банк. Ответ успешный, в данных есть note с текстом «не настроено». Ошибки нет.

Переход со старого mspAlfaBank ​

При первой установке резолвер копирует непустые mspalfabank_* в msp3alfabank_*, если новые пусты. Список: user_name, password, test_mode, api_base_url, success_url, fail_url, json_params_extra, debug.

При обновлении пакета копирования нет. Старый способ оплаты не удаляется. Выключите его. Адрес колбэка сменится на msp3alfabank/webhook.php.

Вкладка заказа показывается и для класса MspAlfaBank\Payment\, пока способ не выключен.

Ключи mspalfabank_status_authorized и status_refunded больше не нужны. Статус заказа задаёт MiniShop3.