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).

Без логина и пароля webhook отвечает 401. Пустое тело: 200 и текст empty.

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

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

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

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

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

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

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

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

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

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

Резолвер копирует непустые mspalfabank_user_name, password, test_mode, api_base_url, success_url, fail_url, json_params_extra, debug в ключи msp3alfabank_*, если новые пусты. Старый способ оплаты не удаляется. Выключите его. Адрес колбэка сменится на msp3alfabank/webhook.php.

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