- MODX 3
- PHP 8.2
- miniShop3
Интеграция msp3CDEKPay
Шаги установки: Быстрый старт.
Запросы к CDEK Pay
| Действие | Запрос | Когда |
|---|---|---|
| Ссылка на оплату | создание ордера | Способ Оплата через CDEK Pay |
| QR СБП | QR СБП | Способ Оплата через CDEK Pay (СБП QR) |
| Возврат | cancellation_requests | После webhook. Нужны id платежа, сумма и причина |
| Заблокировать ссылку | payment_orders/{access_key}/block | Ключ ссылки у попытки |
| Синхронизировать | GET payments | Фильтр по ключу ссылки |
| Чек полного расчёта | full_payments | id платежа CDEK |
| Чек коррекции | corrections | receipt_id |
Холда нет. send() отклоняет заказ дешевле 1 рубля. Сумма в API в копейках. Текст платежа: Order #<номер>, не длиннее 100 символов.
Ключ ссылки access_key пакет сохраняет как номер платежа и внешний номер попытки. Id платежа CDEK это другое поле. Оно приходит в webhook. Возврат и чек полного расчёта без этого id не проходят.
Пока попытка не оплачена, вкладка возврат не отправляет.
Webhook
Один адрес на магазин:
https://ваш-домен.ru/assets/components/msp3cdekpay/webhook.phpТело это JSON с объектом payment и подписью. Подпись считается из полей этого объекта и секретного ключа (SHA-256). Для валюты TST берётся тестовый секрет, для RUR боевой. Неверная подпись отвечает 401. Пустое тело и обычная форма отвечают 400.
Оплата отмечает попытку оплаченной. Возврат отмечает возврат. Неизвестный ключ ссылки отвечает 200, чтобы CDEK Pay не слал повтор.
Для одного способа можно указать адрес ядра:
https://ваш-домен.ru/assets/components/minishop3/api.php/api/v1/payment/webhook/{ID_СПОСОБА}После оплаты MiniShop3 ставит заказу ms3_status_paid. Неуспех: ms3_payment_on_failed_status (по умолчанию 0, статус не меняется). Полный возврат: ms3_payment_on_refunded_status (по умолчанию 5).
Выплата наложенного платежа (payout_amount) статус заказа не меняет. Пакет отвечает 200 и вызывает событие msp3CdekPayOnPayout. Если в MiniShop3 есть класс EventGate, события идут через него.
Строки лога начинаются с [msp3CDEKPay].
Как проходит оплата
Ссылка на оплату приходит в поле link. У QR СБП это qr_link, плюс картинка qr_image.
Вкладка заказа
| Действие | Что нужно |
|---|---|
| Возврат | id платежа из webhook, сумма, причина |
| Заблокировать ссылку | ключ ссылки попытки |
| Синхронизировать | ключ ссылки |
| Чек полного расчёта | id платежа CDEK |
| Чек коррекции | receipt_id |
Чек 54-ФЗ
Включите msp3cdekpay_payment_receipt и кассу в кабинете. Без корректного email покупателя чек не уходит.
В чек попадают товары заказа (предмет расчёта 1) и доставка, если её стоимость больше нуля. Сумма строк подгоняется под сумму заказа.
Строку чека можно поправить событием msp3CdekPayOnPrepareReceiptItem. В него приходят позиция, заказ и товар заказа.
