msp3Tochka

Оплата через Точка Банк для MiniShop3
Автор дополнения
Иван Бочкарев
Пакетов
44
Закачек
288
Обычно отвечает в течение суток
Автор дополнения
Пакетов
44
Закачек
288
Обычно отвечает в течение суток
Версия 1.0.0-pl
Дата выпуска 25.09.2026
Загрузки 0
Просмотры 5
Внимание, этот компонент требует PHP 8.2 или выше!
Внимание, этот компонент требует MODX 3 или выше.
Оплата через Точка Банк для MiniShop3 — карта, СБП, холд и webhook

msp3Tochka подключает интернет-эквайринг Точка Банка к MiniShop3 в MODX 3.

Дополнение создаёт платёжную ссылку, поддерживает оплату картой и СБП, а также двухстадийную схему с блокировкой средств на карте.

Возможности

  • Оплата банковской картой.
  • Оплата через СБП.
  • Другие способы оплаты, которые предоставляет Точка Банк.
  • Обычная оплата с немедленным списанием.
  • Двухстадийная оплата с холдированием средств.
  • Списание холда из заказа MiniShop3.
  • Webhook от банка.
  • Проверка подписи уведомления.
  • Дополнительный запрос актуального статуса платежа в банк.
  • Сохранение номера операции банка в попытке оплаты.
  • Возврат платежа.
  • Синхронизация состояния платежа.
  • Песочница Точка Банка для тестирования интеграции.

Карта и СБП

msp3Tochka создаёт платёжную ссылку, через которую покупатель может выбрать доступный способ оплаты — в том числе банковскую карту или СБП.

Какие именно способы доступны покупателю, определяется возможностями Точка Банка.

Двухстадийная оплата

При использовании холда деньги сначала блокируются на карте.

После подтверждения заказа магазин может выполнить окончательное списание непосредственно из вкладки заказа MiniShop3.

Проверка webhook

Банк отправляет уведомление о платеже на сайт.

msp3Tochka проверяет, что уведомление действительно пришло от банка, а затем отдельно запрашивает статус операции. Статус непосредственно из текста уведомления не используется как единственный источник результата.

Управление платежами

Во вкладке заказа сохраняется номер операции банка и доступны операции с платежом:

  • списание холда;
  • возврат;
  • синхронизация состояния.

Песочница

Точка Банк предоставляет sandbox, поэтому интеграцию можно проверить до перехода к реальным платежам.

Требования

  • MODX Revolution 3.0+;
  • MiniShop3 1.14.0-beta1+;
  • PHP 8.2+;
  • pdoTools 3.x;
  • расширение PHP openssl;
  • HTTPS для webhook;
  • API-токен Точка Банка.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0-pl] - 2026-09-23

Первый публичный релиз компонента msp3Tochka для MODX 3 и MiniShop3.

Added

  • Интеграция эквайринга Точка Банка: POST /acquiring/v1.0/payments, GET /payments/{operationId}, capture и refund. Суммы в рублях с двумя знаками.
  • send() создаёт платёжную ссылку. payment_id и external_id — paymentLinkId вида {orderId}-{random} (не длиннее 45). operationId пишется в payload попытки.
  • Канон MiniShop3: Payment + PaymentWebhookHandlerInterface + ms3_payment_lifecycle. Пакет не пишет status_id.
  • Пакетный webhook.php для события acquiringInternetPayment. Тело JWT text/plain, проверка RS256 через openssl. Статус читается из getPayment, не из JWT. Ответ всегда HTTP 200.
  • Способы оплаты: TochkaPayment и TochkaTwoStagePayment (preAuthorization=true). AUTHORIZED ставит попытку authorized. Автосписания нет. Списание во вкладке заказа.
  • Секреты сначала в msPayment.properties (jwt_token, token, secret), иначе системные настройки. Права токена: MakeAcquiringOperation, ReadAcquiringData.
  • При установке копируются непустые ключи из старого пакета mspTochka. Транспорт EncryptedVehicle для modstore.pro. Локальная сборка: ENCRYPT=0.
  • HTTP через file_get_contents. Лексиконы ru.

Fixed

  • BaseProcessor::checkPermissions() объявлен как public, как требует MODX\Revolution\Processors\Processor.
  • connector.php отдаёт массив ProcessorResponse::getResponse(), а не сам объект ответа.
  • Bootstrap грузит классы через PSR-4. vendor/autoload.php после composer --no-dev имел один и тот же ComposerAutoloaderInit и ронял MODX, если стояло несколько extras.
  • При webhook_verify_jwt webhook принимает только подписанный JWT, не сырой JSON. HTTP-транспорт без редиректов и без file://. Лог не пишет секреты.
  • BaseProcessor::initialize() сбрасывает общий modError. Иначе текст прошлого failure оставался на следующем success.
  • TLS к enter.tochka.com: в пакет добавлены корни НУЦ Минцифры (certs/russian_trusted.pem). Mozilla cacert.pem этот УЦ не содержит.
  • send() сам кладёт operationId в payload попытки. Ядро в recordAttemptFromSend() сохраняет только payment_link, из‑за этого sync/capture/refund не находили операцию.
  • Webhook берёт paymentLinkId из JWT, если getPayment его не вернул. Песочница отдаёт фикстуру 2022 года без этого поля, попытка оставалась unmatched.
  • Возврат из вкладки на попытке pending / authorized не ходит в API и не показывает ms3_err_payment_event_conflict. Сначала webhook APPROVED или capture.

Dependencies

  • MODX 3.x, MiniShop3 3.x (ветка beta с ms3_payment_lifecycle), PHP >= 8.2. OpenSSL для проверки JWT.

Последние обсуждения в сообществе MODX.pro