Skip to content
msp3CDEKPay
Приём оплаты через CDEK Pay для MiniShop3: ссылка, QR СБП, webhook и чеки
  • MODX 3
  • PHP 8.2
  • miniShop3
  1. Компоненты
  2. msp3CDEKPay
  3. Интеграция и сценарии

Интеграция msp3CDEKPay

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

Запросы к CDEK Pay

ДействиеЗапросКогда
Ссылка на оплатусоздание ордераСпособ Оплата через CDEK Pay
QR СБПQR СБПСпособ Оплата через CDEK Pay (СБП QR)
Возвратcancellation_requestsПосле webhook. Нужны id платежа, сумма и причина
Заблокировать ссылкуpayment_orders/{access_key}/blockКлюч ссылки у попытки
СинхронизироватьGET paymentsФильтр по ключу ссылки
Чек полного расчётаfull_paymentsid платежа CDEK
Чек коррекцииcorrectionsreceipt_id

Холда нет. send() отклоняет заказ дешевле 1 рубля. Сумма в API в копейках. Текст платежа: Order #<номер>, не длиннее 100 символов.

Ключ ссылки access_key пакет сохраняет как номер платежа и внешний номер попытки. Id платежа CDEK это другое поле. Оно приходит в webhook. Возврат и чек полного расчёта без этого id не проходят.

Пока попытка не оплачена, вкладка возврат не отправляет.

Webhook

Один адрес на магазин:

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

Тело это JSON с объектом payment и подписью. Подпись считается из полей этого объекта и секретного ключа (SHA-256). Для валюты TST берётся тестовый секрет, для RUR боевой. Неверная подпись отвечает 401. Пустое тело и обычная форма отвечают 400.

Оплата отмечает попытку оплаченной. Возврат отмечает возврат. Неизвестный ключ ссылки отвечает 200, чтобы CDEK Pay не слал повтор.

Для одного способа можно указать адрес ядра:

text
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. В него приходят позиция, заказ и товар заказа.