На странице
Paymos для Drupal Commerce
Подключите Paymos к Drupal Commerce: установка модуля, проверка платежей, Sandbox и Live, запуск cron и удаление подключения.
Что потребуется
Модуль рассчитан на Drupal ^10.3 || ^11, Commerce ^3 и PHP ^8.1. Если ваша версия Drupal требует более новый PHP, ориентируйтесь на неё. Магазин должен работать по HTTPS. Покупатель платит на отдельной странице, а заказ остаётся в обычном процессе Commerce.
Установка модуля
После появления выпуска на Drupal.org установите пакет через Composer из каталога проекта:
composer require 'drupal/commerce_paymos:^1.0'
Для ручной установки скачайте ZIP выпуска. Распакуйте каталог commerce_paymos/ в modules/contrib/commerce_paymos и включите commerce_paymos. PHP SDK уже входит в архив; отдельно добавлять его не нужно. Лицензия модуля — GPL-2.0-or-later, SDK — MIT.
Подключение магазина
Для установки стабильного выпуска 1.0.0 выполните composer require drupal/commerce_paymos:^1.0. Затем подключите магазин к Paymos и добавьте способ оплаты.
Сначала откройте панель Paymos и выберите нужный проект. В Drupal откройте /admin/commerce/config/payment/paymos и нажмите Connect Paymos. Перейдите по ссылке и подтвердите подключение текущего проекта: на странице подтверждения отдельного выбора проекта нет. Затем вернитесь в Drupal и нажмите Check approval.
Теперь добавьте способ оплаты Paymos на странице /admin/commerce/config/payment-gateways/add. Выберите Sandbox для проверки или Live для настоящих платежей. Одного подключения магазина недостаточно: без отдельного способа оплаты покупатель не увидит Paymos при оформлении заказа.
Ключи хранятся в зашифрованном состоянии Drupal. Их защищают приватный ключ Drupal и hash_salt; в экспорт конфигурации они не попадают. Webhook /paymos/webhook регистрируется автоматически, вручную вводить секреты не нужно. Если основной URL магазина изменился, подключите магазин заново.
Скопируйте адреса из админки Drupal в существующий проект Paymos: /paymos/return — в Success URL, /paymos/return?cancel=1 — в Fail URL. Это нужно сделать один раз. Покупатель возвращается по ссылке Back to store на странице оплаты. Адреса для продолжения заказа хранятся час в сессии того же браузера и относятся только к последней оплате через Paymos. Если сессии нет, срок истёк или заказ либо платёжный шлюз изменился, откроется главная магазина. Сам возврат не подтверждает оплату: статус зависит от проверенных webhook/API и платежа Drupal Commerce.
После обновления модуля пересоберите кеш Drupal: drush --uri=https://your-store.example cache:rebuild.
Проверка платежа
Подписанное уведомление сверяется с API. Проверки связывают счёт с заказом и сверяют проект, среду, точную сумму и валюту. Возвращение покупателя со страницы оплаты не подтверждает платёж. Повторное уведомление не создаёт второй платёж Commerce по тому же счёту.
Неполная или поздняя оплата не запускает выдачу товара автоматически. При расхождении нужна проверка. Оформление и исполнение заказа определяет ваш процесс Commerce. Автоматических возвратов в модуле нет — учитывайте это в правилах магазина.
Запуск cron
Cron проверяет незавершённые счета ограниченными партиями. Настройте регулярный запуск. Для Drush укажите основной HTTPS-адрес магазина:
drush --uri=https://your-store.example cron
Замените адрес в примере своим. Это нужно и при запуске из командной строки, где нет адреса из запроса браузера.
Удаление модуля
Сначала проверьте или закройте незавершённые счета: пока они есть, удалить модуль нельзя. При удалении стираются локальные зашифрованные ключи подключения. Настоящие платежи Commerce сохраняются.
Другие варианты подключения — в обзоре плагинов. Для магазина на WordPress есть инструкция WooCommerce.