Skip to content

Модуль позволяет начать принимать оплату через платежную систему Stripe.

Notifications You must be signed in to change notification settings

darkfriend/bitrix_dev2fun.stripepayment

Repository files navigation

Платежный модуль Stripe

Модуль позволяет начать принимать оплату через платежную систему Stripe.

Способы оплаты

  • Банковские карты (Card)
  • Кредитные карты (CreditCard)
  • Sepa Debit / IBAN
  • Sofort
  • Giropay

Поддерживаемая версия STRIPE API

2023-08-16

Инструкция

  1. Узнать используемую кодировку (dbconn.php или after_connect_d7.php или after_connect.php)
  2. Проверить права у папки modules
  3. Скопировать файлы из нужной папки репозитория (utf8 или win1251) на свой сервер в папку /bitrix/modules/
  4. Перейти в административную панель
  5. Установить модуль в административной панели.
  6. Прочитать сообщение
  7. Зайти в Магазин -> Настройки -> Платежные системы -> Добавить платежную систему
  8. В пункте "Обработчик", выбираем stripe.
  9. Название (NAME) обязательно должно быть Stripe или stripe (иначе вебхук не будет работать)
  10. В полях ниже указываем свои данные
  11. Настраиваем вебхуки
    • Копируем обработчик вебхука stripeWebhook.php, который в корне папки модуля. Копируем в любое публичное место проекта. После указываем путь до обработчика в кабинете stripe.com
    • Переходим в кабинет stripe.com
      • указываем url-путь до файла stripeWebhook.php
      • добавляем вебхуки на события:
        • charge.succeeded
        • checkout.session.completed
      • версия API 2023-08-16
  12. Поблагодарить автора :)
  13. Использовать.

Поддержка режимов:

  • тестовый режим (demo mode) - по умолчанию
  • боевой режим (live mode)

Поддержка шаблонов:

  • REDIRECT - шаблон при котором происходит сразу редирект на платежную страницу stripe.com
  • CUSTOM - выводится форма, с поддержкой card, Sepa Debit/IBAN, Sofort, Giropay

Куда класть свой шаблон?

Вы можете создать свой шаблон вывода и в последующем выбрать его в настройках.

Вам нужно положить свой шаблон в одну из нижеследующих каталогов (пути от корня сайта):

  • /local/php_interface/sale_payment/stripe/templates/
  • /bitrix/php_interface/sale_payment/stripe/templates/

Последовательность соблюдена.
Совпадения имен игнорируются.

Как править шаблон

  1. копируем шаблон в папку с новым шаблонов (название должно отличаться)
  2. заходим в папку с шаблоном и выполняем npm i (установка пакетов)
  3. правим шаблон
  4. в конце делаем npm run build (билдим шаблон)
  5. теперь можно удалить папку node_modules, которая в корне шаблона (ну или оставьте, если не мешает)

Обновления (migrations)

При обновлении с версии на версию через git, смотрите в папку migrations.

Миграции применяются после обновления файлов!

Если на версию на которую вы переходите есть соответствующая миграция, то обязательно применяйте её.

Также настоятельно рекомендую после обновления применять файл upgrade.php из migrations (он актуализируют скрипты в bitrix/php_interface/include/sale_payment)

Поддержка событий:

  • OnBeforeStripeCharge - вызывается после создания customer.
    Передаются параметры:

    • &$arCreateFields - массив, который дальше идет в \Stripe\Charge::create
    • $customer - объект от \Stripe\Customer::create
  • OnBeforeUpdateOrder - вызывается после получения статуса оплаты.
    Передаются параметры:

    • &$arFields - массив полей, который идет в обновление заказа (CSaleOrder::Update)
    • $charge - объект от \Stripe\Charge::create
    • $orderID - идентификатор заказа
  • OnBeforeSuccessOutput - вызывается перед выводом сообщения о успехе.
    Передаются параметры:

    • &$output - строка или HTML-код, которая выведет результат.
    • $arFields - массив полей от заказа (тот же, что был в CSaleOrder::Update)
    • $orderID - идентификатор заказа
  • OnBeforeErrorOutput - вызывается перед выводом сообщения об ошибке.
    Передаются параметры:

    • &$error - строка или HTML-код, которая выведет ошибку.
    • $errorText - строка с сообщением ошибки
    • $arFields - массив полей от заказа (тот же, что был в CSaleOrder::Update)
    • $orderID - идентификатор заказа Если есть нарекания или предложения по улучшению модуля пишите на почту техподдержки.