{"id":19214399,"url":"https://github.com/express-pay/wordpress","last_synced_at":"2026-04-18T07:35:17.278Z","repository":{"id":168536771,"uuid":"359467670","full_name":"express-pay/wordpress","owner":"express-pay","description":"Расширение для интеграции с сервисом \"Экспресс Платежи\"","archived":false,"fork":false,"pushed_at":"2024-10-31T19:00:29.000Z","size":635,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-04T18:12:18.446Z","etag":null,"topics":["payments","php","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"https://express-pay.by","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/express-pay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-19T13:21:45.000Z","updated_at":"2024-10-31T19:00:33.000Z","dependencies_parsed_at":"2023-08-16T03:33:38.021Z","dependency_job_id":null,"html_url":"https://github.com/express-pay/wordpress","commit_stats":null,"previous_names":["express-pay/wordpress"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/express-pay%2Fwordpress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/express-pay%2Fwordpress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/express-pay%2Fwordpress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/express-pay%2Fwordpress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/express-pay","download_url":"https://codeload.github.com/express-pay/wordpress/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240287729,"owners_count":19777538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["payments","php","wordpress","wordpress-plugin"],"created_at":"2024-11-09T14:09:51.010Z","updated_at":"2026-04-18T07:35:17.272Z","avatar_url":"https://github.com/express-pay.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Расширение Wordpress сервиса «Экспресс Платежи»\r\nРасширение CMS Wordpress для интеграции с сервисом «Экспресс Платежи». Расширение позволяет производить прием платежей с помощью ЕРИП, банковских карт и E-POS.\r\n\r\n\u003ca href=\"https://express-pay.by/cms-extensions/wordpress\"\u003eИнструкция для установки и настройки\u003c/a\u003e\r\n\r\n\u003ca href=\"https://www.youtube.com/c/express-pay-by\"\u003eНаш Youtube канал с опубликованными видео по расширениям\u003c/a\u003e\r\n\r\n## Описание\r\n\r\nПлагин WordPress (файл `expresspay.payment.php`, версия 1.4.0), который добавляет на сайт форму оплаты через сервис «Экспресс Платежи» и позволяет принимать платежи через ЕРИП, банковские карты и E-POS.\r\nОплата добавляется на страницу через шорткод, а настройки и список выставленных счетов доступны в админ-панели WordPress в меню **Express Payments**.\r\n\r\nПлагин хранит настройки платежных методов и счета в отдельных таблицах БД WordPress:\r\n- `{$wpdb-\u003eprefix}expresspay_options` — платежные методы и их параметры\r\n- `{$wpdb-\u003eprefix}expresspay_invoices` — созданные счета и статусы\r\n\r\nДля приема уведомлений используется endpoint WordPress AJAX:\r\n`/wp-admin/admin-ajax.php?action=receive_notification\u0026type_id=\u003cID_МЕТОДА\u003e`\r\n\r\n## Возможности\r\n\r\n- Добавление нескольких платежных методов в админке (тип `erip`, `card`, `epos`) и переключение активного метода.\r\n- Вывод формы оплаты на сайте через шорткод (с выбором метода, суммой и назначением платежа).\r\n- Формирование параметров счета и подписи (HMAC-SHA1) для API v1:\r\n  - `web_invoices` (ЕРИП/E-POS)\r\n  - `web_cardinvoices` (банковские карты)\r\n- Тестовый режим `TestMode` с использованием `SandboxUrl` и тестовых параметров из `config/test_settings.json`.\r\n- Проверка подписи входящих уведомлений при `UseSignatureForNotification=1` (поле `Signature`, ключ `SecretWordForNotification`).\r\n- Возможность разрешить изменение данных на стороне оплаты (ФИО/адрес/сумма): `CanChangeName`, `CanChangeAddress`, `CanChangeAmount`.\r\n- Отправка уведомлений плательщику (email/SMS) при включении `SendEmail`/`SendSms`.\r\n- Отображение QR-кода для ЕРИП/E-POS при включении `ShowQrCode` (получение QR через `https://api.express-pay.by/v1/qrcode/getqrcode/`).\r\n- Страница со списком счетов и статусами в админ-панели (**Invoices and payemnts**).\r\n\r\n## Требования\r\n\r\n- WordPress (минимальная версия не указана в коде плагина).\r\n- PHP (используются стандартные функции PHP и WordPress API).\r\n- Исходящий доступ к API сервиса:\r\n  - `https://api.express-pay.by/v1/` (production)\r\n  - `https://sandbox-api.express-pay.by/v1/` (test)\r\n- Публичная доступность URL для приема уведомлений (если сайт закрыт авторизацией/файрволом — уведомления не дойдут):\r\n  - `/wp-admin/admin-ajax.php?action=receive_notification\u0026type_id=\u003cID_МЕТОДА\u003e`\r\n\r\n## Установка\r\n\r\n1. Скопируйте каталог плагина `wordpress-main/` в директорию WordPress:\r\n   - `wp-content/plugins/wordpress-main/`\r\n2. В админ-панели WordPress откройте **Плагины** и активируйте плагин **ExpressPay Payment Module**.\r\n3. После активации плагин создаст таблицы `expresspay_options` и `expresspay_invoices` в базе данных.\r\n4. Убедитесь, что в админ-меню появился раздел **Express Payments**.\r\n\r\nПроверка установки:\r\n- В админке отображается меню **Express Payments**.\r\n- Доступны страницы настроек методов оплаты и список счетов.\r\n\r\n## Настройка\r\n\r\nНастройка выполняется в админ-панели WordPress: **Express Payments → Settings** (добавление/редактирование метода оплаты).\r\n\r\n- `Name` - название платежного метода, отображаемое в форме оплаты.\r\n  - пример: `ExpressPay (ERIP)`\r\n- `Type` - тип метода оплаты (`erip`, `epos`, `card`).\r\n  - пример: `erip`\r\n- `Token` - токен доступа к API сервиса.\r\n  - пример: `YOUR_TOKEN`\r\n- `ServiceId` - номер услуги в сервисе.\r\n  - пример: `123`\r\n- `SecretWord` - секретное слово для формирования подписи запросов на создание счетов.\r\n  - пример: `YOUR_SECRET_WORD`\r\n- `SecretWordForNotification` - секретное слово для проверки подписи входящих уведомлений.\r\n  - пример: `YOUR_NOTIFICATION_SECRET`\r\n- `ApiUrl` - базовый URL production API (используется как префикс, далее добавляется endpoint).\r\n  - пример: `https://api.express-pay.by/v1/`\r\n- `SandboxUrl` - базовый URL sandbox API (используется в тестовом режиме).\r\n  - пример: `https://sandbox-api.express-pay.by/v1/`\r\n- `TestMode` - включает использование `SandboxUrl` и тестовых параметров (token/serviceid берутся из `config/test_settings.json` через кнопку/запрос в настройках).\r\n- `UseSignatureForNotification` - включает проверку поля `Signature` в уведомлениях.\r\n- `EripPath` - путь в дереве ЕРИП, который показывается пользователю в инструкции оплаты.\r\n  - пример: `Система \"Расчет\" (ЕРИП) -\u003e ... -\u003e Ваш сервис`\r\n- `ShowQrCode` - показывает QR-код для оплаты (ЕРИП/E-POS).\r\n- `CanChangeName` - разрешает изменять ФИО при оплате.\r\n- `CanChangeAddress` - разрешает изменять адрес при оплате.\r\n- `CanChangeAmount` - разрешает изменять сумму при оплате.\r\n- `SendEmail` - передавать email для уведомлений плательщика.\r\n- `SendSms` - передавать телефон для SMS-уведомлений (плагин приводит телефон к формату `375XXXXXXXXX`).\r\n- `ServiceProviderCode` - код поставщика услуг для E-POS (используется для формирования кода оплаты).\r\n  - пример: `12345`\r\n- `ServiceEposCode` - код услуги E-POS (используется для формирования кода оплаты).\r\n  - пример: `67890`\r\n\r\nURL для уведомлений по выбранному методу формируется плагином так:\r\n`/wp-admin/admin-ajax.php?action=receive_notification\u0026type_id=\u003cID_МЕТОДА\u003e`\r\n\r\n## Использование\r\n\r\n1. Создайте страницу (или откройте существующую) и добавьте шорткод формы оплаты, например:\r\n   - `[expresspay_payment amount=25.5 edit_amount=true info=\"Назначение платежа\"]`\r\n2. На странице пользователь выбирает метод оплаты, вводит данные (для `card` блок ФИО скрывается) и подтверждает оплату.\r\n3. Плагин формирует параметры счета и подпись и отправляет пользователя на оплату (ReturnType=`redirect`) в сервис:\r\n   - `.../web_invoices` (ЕРИП/E-POS)\r\n   - `.../web_cardinvoices` (банковские карты)\r\n4. После оплаты сервис возвращает пользователя на ту же страницу (плагин добавляет параметры `type_id` и `result`), а также параметры сервиса:\r\n   - `ExpressPayAccountNumber`, `ExpressPayInvoiceNo`, `Signature`\r\n   Плагин проверяет подпись (метод `response-web-invoice`) и отмечает счет как оплаченный.\r\n5. Дополнительно сервис отправляет серверное уведомление на:\r\n   - `/wp-admin/admin-ajax.php?action=receive_notification\u0026type_id=\u003cID_МЕТОДА\u003e`\r\n   В POST передаются `Data` (JSON) и `Signature` (если включено `UseSignatureForNotification`).\r\n\r\nПроверка оплаты в тестовом режиме:\r\n- Включите `TestMode`, убедитесь что используется `SandboxUrl`, и выполните оплату через sandbox-сценарий сервиса.\r\n\r\nИмитация webhook (проверка обработчика уведомлений):\r\n- Отправьте POST-запрос на `/wp-admin/admin-ajax.php?action=receive_notification\u0026type_id=\u003cID_МЕТОДА\u003e` с параметрами `Data` и `Signature`.\r\n- Подпись формируется как `HMAC-SHA1` (в верхнем регистре) от строки `Data` с ключом `SecretWordForNotification` (метод `notification`).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpress-pay%2Fwordpress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexpress-pay%2Fwordpress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpress-pay%2Fwordpress/lists"}