Skip to content
msp3Tochka
Приём оплаты через Точка Банк для MiniShop3: платёжная ссылка, webhook JWT, одно- и двухстадийная схема
  • MODX 3
  • PHP 8.2
  • miniShop3
  1. Компоненты
  2. msp3Tochka
  3. Быстрый старт

Быстрый старт

Как принять первый платёж через Точка Банк на сайте с MiniShop3.

Требования

ТребованиеВерсия
MODX Revolution3.0+
MiniShop31.14.0-beta1 и новее
PHP8.2+. Нужно расширение openssl: им пакет проверяет подпись уведомления банка
СайтHTTPS на webhook. 301 с HTTP часто роняет тело POST

Шаг 1: Провайдер modstore и установка пакета

  1. Система → Управление пакетами → Провайдеры → добавьте modstore.pro:
    • URL: https://modstore.pro/extras/
    • Email и API-ключ из личного кабинета modstore.pro
  2. Убедитесь, что установлен MiniShop3.
  3. Управление пакетами → установите msp3TochkaShow Details укажите провайдер modstore.pro).
  4. Управление → Очистить кэш.

Резолвер создаёт два активных способа. Старый mspTochka, если он уже стоит, не удаляется.

НазваниеКласс
Оплата через Точка БанкMsp3Tochka\Payment\TochkaPayment
Оплата через Точка Банк (двухстадийная)Msp3Tochka\Payment\TochkaTwoStagePayment

JWT и customerCode положите в msPayment.properties (jwt_token, token или secret). Если properties пусты, пакет читает системные настройки.

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

Откуда брать ключи

Нужны открытый счёт в Точке и подключённый интернет-эквайринг. Песочнице боевые ключи не нужны: публичные значения в шаге 3.

JWT

Токен выпускаете в интернет-банке. Инструкция банка: авторизация по JWT.

  1. Вкладка Сервисы.
  2. В блоке Все сервисы откройте Интеграции и API.
  3. Создать JWT-ключ. Задайте название и срок. Когда срок кончится, ключ перевыпускают вручную. Отдельного refresh-токена нет.
  4. Продолжить. Отметьте разрешения. Для пакета нужны MakeAcquiringOperation и ReadAcquiringData. Если компаний несколько, разрешения задаются у каждой. ManageWebhookData нужен только если webhook регистрируете вызовом API Точки. Из админки MODX пакет webhook не регистрирует.
  5. Создать ключ и код из СМС.
  6. Скопируйте JWT в msp3tochka_jwt_token. Позже тот же токен лежит в блоке JWT-ключи того же сервиса.

На том же экране банк показывает client_id. В настройках msp3Tochka поля для него нет. Он нужен, если webhook вешаете через API Точки: на один client_id приходится один URL.

При перевыпуске банк удаляет старый JWT и старый client_id. В MODX вставьте новый токен. Если webhook был привязан к старому client_id, зарегистрируйте его заново.

В запрос пакет сам подставляет заголовок Authorization: Bearer.

customerCode

Это идентификатор компании в API, строка до 9 символов. На экране создания JWT его нет.

Вызовите Get Customers List с этим JWT. Возьмите customerCode у объекта, где customerType равен Business. Вставьте в msp3tochka_customer_code.

Чужой или пустой код даёт 403 Forbidden by consent.

merchantId

Поле msp3tochka_merchant_id оставьте пустым, если торговая точка интернет-эквайринга одна.

Если точек несколько, банк требует merchantId. Это 15 цифр из Get Retailers. Идентификатор точки СБП другой: он начинается с MA или MB. Его в эту настройку не кладите.

Термины банка: customerCode и merchantId.

Шаг 2: Куда вписать в MODX

  1. Настройки → Системные настройки, фильтр msp3tochka.
  2. Либо откройте способ оплаты и заполните properties: jwt_token (также принимаются token и secret) и customer_code. Непустые properties перекрывают системные настройки.
  3. После сохранения: Управление → Очистить весь кеш. Иначе API может не увидеть новые значения.

Список полей: Системные настройки.

Шаг 3: Песочница

msp3tochka_test_mode = Да. Хост: https://enter.tochka.com/sandbox/v2.

Публичные значения из документации Точки:

  • JWT: sandbox.jwt.token
  • customerCode: 1234567ab
  • merchantId: 200000000001097

В песочнице нет платёжной формы. Ссылка ведёт на merch.example.com. Запрос статуса отдаёт учебный ответ: оплачено, сумма 100 ₽, номера ссылки в нём нет. Пакет тогда берёт номер из токена. Уведомление пройдёт, только если сумма заказа тоже 100 ₽.

Покупатели картой здесь заплатить не могут.

Шаг 4: URL уведомлений

В кабинете Точки событие acquiringInternetPayment. Укажите URL сайта:

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

HTTPS без Basic Auth и без 301. Тело уведомления: компактный JWT, Content-Type: text/plain. Пакет проверяет подпись ключом банка (msp3tochka_webhook_jwk_url), затем сам запрашивает статус платежа.

Шаг 5: Способ оплаты в MiniShop3

  1. В админке MiniShop3 откройте Настройки → Оплаты.
  2. Включите Оплата через Точка Банк или Оплата через Точка Банк (двухстадийная).
  3. Привяжите способ к доставке.

Если рядом стоит старый mspTochka, выключите его и смените URL webhook. Подробнее: Переход.

Шаг 6: Боевой режим

  1. msp3tochka_test_mode = Нет. Хост боя: https://enter.tochka.com/uapi, если не задали msp3tochka_api_base_url.
  2. Вставьте боевые JWT, customer_code и при нескольких точках merchant_id. Очистите кеш.
  3. Пропишите webhook из шага 4.
  4. Первый платёж лучше на 1 ₽. Проверьте попытку paid, статус ms3_status_paid и письмо из Центра уведомлений.
  5. Выключите msp3tochka_debug.