Расширение 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_МЕТОДА>
- Скопируйте каталог плагина
wordpress-main/в директорию WordPress:wp-content/plugins/wordpress-main/
- В админ-панели WordPress откройте Плагины и активируйте плагин ExpressPay Payment Module.
- После активации плагин создаст таблицы
expresspay_optionsиexpresspay_invoicesв базе данных. - Убедитесь, что в админ-меню появился раздел 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_МЕТОДА>
- Создайте страницу (или откройте существующую) и добавьте шорткод формы оплаты, например:
[expresspay_payment amount=25.5 edit_amount=true info="Назначение платежа"]
- На странице пользователь выбирает метод оплаты, вводит данные (для
cardблок ФИО скрывается) и подтверждает оплату. - Плагин формирует параметры счета и подпись и отправляет пользователя на оплату (ReturnType=
redirect) в сервис:.../web_invoices(ЕРИП/E-POS).../web_cardinvoices(банковские карты)
- После оплаты сервис возвращает пользователя на ту же страницу (плагин добавляет параметры
type_idиresult), а также параметры сервиса:ExpressPayAccountNumber,ExpressPayInvoiceNo,SignatureПлагин проверяет подпись (методresponse-web-invoice) и отмечает счет как оплаченный.
- Дополнительно сервис отправляет серверное уведомление на:
/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).