
- MODX 3
- PHP 8.2
- miniShop3


Проверьте по порядку:
https://ваш-домен.ru/assets/components/msptbank/webhook.php.msptbank_terminal_key и msptbank_password для того же терминала, что в кабинете.ms3_status_paid (часто ID 3).msptbank_debug и посмотрите лог MODX после тестовой оплаты.Источник истины: webhook, а не только возврат браузера на SuccessURL.
Webhook мог опоздать или не дойти. TbankPayment::receive() при наличии PaymentId в URL вызывает GetState как fallback. Если параметра нет, дождитесь webhook или проверьте Notification URL.
WebhookHandler отклоняет уведомление, если Amount ≠ order.cost в копейках. Проверьте, что стоимость заказа в MS3 не менялась после Init.
msptbank_test_mode = «Да».Не смешивайте контуры. Для msptbank_test_mode = «Да» нужны ключи и whitelist тестового контура. Для боевых платежей выключите test_mode и используйте рабочий терминал.
Пустые msptbank_terminal_key или msptbank_password. Заполните оба в Системные настройки → msptbank.
Переустановите пакет или создайте msPayment вручную с классом MspTBank\Payment\TbankPayment. Очистите кэш MODX.
Классы MspTBank\ не загрузятся. Включите плагин на событии OnMODXInit.
Так работает текущая версия: каждый вызов send() делает новый Init. До webhook tbank_payment_id в заказе нет.
Для оплаты из ЛК:
send() по клику, не при рендере спискаPaymentId в своём сниппете.msptbank_send_receipt = «Да».msptbank_taxation и msptbank_vat.Компонент добавляет Receipt в Init, Confirm для двухстадийной схемы и Refund.
Компонент пропустит чек, запишет warning в лог и отправит платёж без Receipt. Оплата не блокируется, потому что T-Bank требует Email или Phone для Receipt.
Да, если в терминале T-Bank не подключена онлайн-касса или магазин пока не готов передавать чеки. В этом случае установите msptbank_send_receipt = «Нет».
Сумма строк Receipt.Items не совпала с суммой платежа или возврата. Компонент останавливает запрос, чтобы не отправить некорректный чек. Проверьте состав заказа, стоимость доставки, скидки и итоговую сумму.
Для обычной оплаты в Init используется full_payment. При двухстадийной схеме Init отправляет full_prepayment, а Confirm после AUTHORIZED отправляет full_payment. Для Refund используется full_payment.
Включите msptbank_debug = «Да». Сообщения с префиксом компонента попадут в лог MODX (core/cache/logs/ или путь из конфигурации). Password терминала в лог не пишется.
При неверном Token или несовпадении суммы обработчик логирует предупреждение и не меняет заказ. Сверьте Password терминала и тело уведомления в debug-логе.
Нет. Только MiniShop3 и MODX 3.
json, curl (для HTTP к API T-Bank).
Нет для установки transport-пакета. Зависимости поставляются вместе с компонентом.