Skip to content

express-pay/wordpress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Расширение Wordpress сервиса «Экспресс Платежи»

Расширение CMS Wordpress для интеграции с сервисом «Экспресс Платежи». Расширение позволяет производить прием платежей с помощью ЕРИП, банковских карт и E-POS.

Инструкция для установки и настройки

Наш Youtube канал с опубликованными видео по расширениям

Описание

Плагин WordPress (файл expresspay.payment.php, версия 1.4.0), который добавляет на сайт форму оплаты через сервис «Экспресс Платежи» и позволяет принимать платежи через ЕРИП, банковские карты и E-POS. Оплата добавляется на страницу через шорткод, а настройки и список выставленных счетов доступны в админ-панели WordPress в меню Express Payments.

Плагин хранит настройки платежных методов и счета в отдельных таблицах БД WordPress:

  • {$wpdb->prefix}expresspay_options — платежные методы и их параметры
  • {$wpdb->prefix}expresspay_invoices — созданные счета и статусы

Для приема уведомлений используется endpoint WordPress AJAX: /wp-admin/admin-ajax.php?action=receive_notification&type_id=<ID_МЕТОДА>

Возможности

  • Добавление нескольких платежных методов в админке (тип erip, card, epos) и переключение активного метода.
  • Вывод формы оплаты на сайте через шорткод (с выбором метода, суммой и назначением платежа).
  • Формирование параметров счета и подписи (HMAC-SHA1) для API v1:
    • web_invoices (ЕРИП/E-POS)
    • web_cardinvoices (банковские карты)
  • Тестовый режим TestMode с использованием SandboxUrl и тестовых параметров из config/test_settings.json.
  • Проверка подписи входящих уведомлений при UseSignatureForNotification=1 (поле Signature, ключ SecretWordForNotification).
  • Возможность разрешить изменение данных на стороне оплаты (ФИО/адрес/сумма): CanChangeName, CanChangeAddress, CanChangeAmount.
  • Отправка уведомлений плательщику (email/SMS) при включении SendEmail/SendSms.
  • Отображение QR-кода для ЕРИП/E-POS при включении ShowQrCode (получение QR через https://api.express-pay.by/v1/qrcode/getqrcode/).
  • Страница со списком счетов и статусами в админ-панели (Invoices and payemnts).

Требования

  • WordPress (минимальная версия не указана в коде плагина).
  • PHP (используются стандартные функции PHP и WordPress API).
  • Исходящий доступ к API сервиса:
    • https://api.express-pay.by/v1/ (production)
    • https://sandbox-api.express-pay.by/v1/ (test)
  • Публичная доступность URL для приема уведомлений (если сайт закрыт авторизацией/файрволом — уведомления не дойдут):
    • /wp-admin/admin-ajax.php?action=receive_notification&type_id=<ID_МЕТОДА>

Установка

  1. Скопируйте каталог плагина wordpress-main/ в директорию WordPress:
    • wp-content/plugins/wordpress-main/
  2. В админ-панели WordPress откройте Плагины и активируйте плагин ExpressPay Payment Module.
  3. После активации плагин создаст таблицы expresspay_options и expresspay_invoices в базе данных.
  4. Убедитесь, что в админ-меню появился раздел Express Payments.

Проверка установки:

  • В админке отображается меню Express Payments.
  • Доступны страницы настроек методов оплаты и список счетов.

Настройка

Настройка выполняется в админ-панели WordPress: Express Payments → Settings (добавление/редактирование метода оплаты).

  • Name - название платежного метода, отображаемое в форме оплаты.
    • пример: ExpressPay (ERIP)
  • Type - тип метода оплаты (erip, epos, card).
    • пример: erip
  • Token - токен доступа к API сервиса.
    • пример: YOUR_TOKEN
  • ServiceId - номер услуги в сервисе.
    • пример: 123
  • SecretWord - секретное слово для формирования подписи запросов на создание счетов.
    • пример: YOUR_SECRET_WORD
  • SecretWordForNotification - секретное слово для проверки подписи входящих уведомлений.
    • пример: YOUR_NOTIFICATION_SECRET
  • ApiUrl - базовый URL production API (используется как префикс, далее добавляется endpoint).
    • пример: https://api.express-pay.by/v1/
  • SandboxUrl - базовый URL sandbox API (используется в тестовом режиме).
    • пример: https://sandbox-api.express-pay.by/v1/
  • TestMode - включает использование SandboxUrl и тестовых параметров (token/serviceid берутся из config/test_settings.json через кнопку/запрос в настройках).
  • UseSignatureForNotification - включает проверку поля Signature в уведомлениях.
  • EripPath - путь в дереве ЕРИП, который показывается пользователю в инструкции оплаты.
    • пример: Система "Расчет" (ЕРИП) -> ... -> Ваш сервис
  • ShowQrCode - показывает QR-код для оплаты (ЕРИП/E-POS).
  • CanChangeName - разрешает изменять ФИО при оплате.
  • CanChangeAddress - разрешает изменять адрес при оплате.
  • CanChangeAmount - разрешает изменять сумму при оплате.
  • SendEmail - передавать email для уведомлений плательщика.
  • SendSms - передавать телефон для SMS-уведомлений (плагин приводит телефон к формату 375XXXXXXXXX).
  • ServiceProviderCode - код поставщика услуг для E-POS (используется для формирования кода оплаты).
    • пример: 12345
  • ServiceEposCode - код услуги E-POS (используется для формирования кода оплаты).
    • пример: 67890

URL для уведомлений по выбранному методу формируется плагином так: /wp-admin/admin-ajax.php?action=receive_notification&type_id=<ID_МЕТОДА>

Использование

  1. Создайте страницу (или откройте существующую) и добавьте шорткод формы оплаты, например:
    • [expresspay_payment amount=25.5 edit_amount=true info="Назначение платежа"]
  2. На странице пользователь выбирает метод оплаты, вводит данные (для card блок ФИО скрывается) и подтверждает оплату.
  3. Плагин формирует параметры счета и подпись и отправляет пользователя на оплату (ReturnType=redirect) в сервис:
    • .../web_invoices (ЕРИП/E-POS)
    • .../web_cardinvoices (банковские карты)
  4. После оплаты сервис возвращает пользователя на ту же страницу (плагин добавляет параметры type_id и result), а также параметры сервиса:
    • ExpressPayAccountNumber, ExpressPayInvoiceNo, Signature Плагин проверяет подпись (метод response-web-invoice) и отмечает счет как оплаченный.
  5. Дополнительно сервис отправляет серверное уведомление на:
    • /wp-admin/admin-ajax.php?action=receive_notification&type_id=<ID_МЕТОДА> В POST передаются Data (JSON) и Signature (если включено UseSignatureForNotification).

Проверка оплаты в тестовом режиме:

  • Включите TestMode, убедитесь что используется SandboxUrl, и выполните оплату через sandbox-сценарий сервиса.

Имитация webhook (проверка обработчика уведомлений):

  • Отправьте POST-запрос на /wp-admin/admin-ajax.php?action=receive_notification&type_id=<ID_МЕТОДА> с параметрами Data и Signature.
  • Подпись формируется как HMAC-SHA1 (в верхнем регистре) от строки Data с ключом SecretWordForNotification (метод notification).

About

Расширение для интеграции с сервисом "Экспресс Платежи"

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors