В этом руководстве вы узнаете, как установить и настроить платёжный провайдер Authorize.net для Medusa, подготовить аккаунт Authorize.net, подключить вебхук и Google Pay и перейти с плагина .
yarn add @gorgo/medusa-integration @gorgo/medusa-payment-authorizenetДобавьте конфигурации провайдера Модуля интеграций и платёжного модуля Medusa в файл приложения Medusa Admin:
medusa-config.ts1// ...2const AUTHORIZENET_INTEGRATION_ID = "authorizenet-1"34module.exports = defineConfig({5 // ...6 plugins: [7 // ...8 {9 resolve: "@gorgo/medusa-integration",10 options: {11 encryptionKey: process.env.INTEGRATION_ENCRYPTION_KEY,12 providers: [13 {14 resolve: "@gorgo/medusa-payment-authorizenet/providers/integration-authorizenet",15 id: AUTHORIZENET_INTEGRATION_ID,16 options: {},17 },18 ],19 },20 },21 {22 resolve: "@gorgo/medusa-payment-authorizenet",23 options: {},24 },25 ],26 modules: [27 // ...28 {29 resolve: "@medusajs/medusa/payment",30 options: {31 providers: [32 {33 resolve: "@gorgo/medusa-payment-authorizenet/providers/payment-authorizenet",34 id: "authorizenet",35 options: {36 id: AUTHORIZENET_INTEGRATION_ID37 }38 },39 ],40 },41 },42 ],43})
Платёжный провайдер, зарегистрированный так, получает id и принимает вебхуки на роуте .
Добавьте переменную окружения с секретным ключом шифрования:
.envINTEGRATION_ENCRYPTION_KEY=supersecret
API Login ID, Transaction Key и остальные настройки Authorize.net не входят в параметры провайдера. Введите их в Medusa Admin, как описано в разделе Управление настройками Authorize.net в Medusa Admin.
Плагину нужны три значения из Merchant Interface Authorize.net и четвёртое для вебхуков. На время тестов берите их из sandbox-аккаунта, а для настоящих платежей из аккаунта в продакшене:
Держите sandbox-аккаунт в Live Mode. В Test Mode Authorize.net не сохраняет транзакции и возвращает вместо ID транзакции, поэтому плагин не сможет их списать, вернуть или отменить. Пока аккаунт в Test Mode, Проверить соединение в Medusa Admin не проходит.
Аккаунт Authorize.net принимает платежи в одной валюте, которую вы выбираете при создании аккаунта. Добавляйте провайдер только в регионы с этой валютой, как описано в разделе Добавление платёжного провайдера. Валюты аккаунта показывает Проверить соединение.
Чтобы получать уведомления о платежах, на которые реагирует плагин, добавьте вебхук для вашего магазина в Authorize.net:
Откройте вебхуки в Merchant Interface Authorize.net того аккаунта, чьи ключи вы используете, или создайте вебхук запросом через Webhooks API.
Укажите URL в следующем формате:
Webhook URLhttps://{YOUR_MEDUSA_DOMAIN}/hooks/payment/authorizenet_authorizenet
Замените на домен вашего магазина Medusa.
Подпишите его на события , и и сделайте активным.
Введите Signature Key аккаунта в поле Ключ подписи в настройках Authorize.net в Medusa Admin. После этого Проверить соединение проверяет, что есть активный вебхук с в URL, который отправляет все три события.
завершает платёж, который Fraud Detection Suite задержал на проверку, только пишется в лог, а записывает в Medusa списание из Merchant Interface. Неудачную доставку Authorize.net повторяет до 10 раз в течение нескольких дней, а затем делает вебхук неактивным. Проверить соединение считает такой вебхук отсутствующим. Во время разработки запускайте бэкенд за туннелем с публичным адресом по HTTPS, как это делает пример командой .
Google Pay появляется в ряду экспресс-оплаты на витрине, когда вы включаете его в секции Экспресс-оплата настроек Authorize.net. Payment Gateway ID вашего аккаунта плагин сам получает у Authorize.net и передаёт в Google Pay, вводить его не нужно.
В sandbox кнопка работает в тестовом окружении Google Pay. В продакшене Google Pay нужен ваш Merchant ID из Google Pay & Wallet Console, и без него настройки не дадут включить Google Pay. Кнопка работает на странице с HTTPS и на .
Плагин регистрируется под тем же id провайдера, что и , поэтому заменяет его без миграции данных. Платежи, созданные старым плагином, остаются в базе, и этот плагин списывает, возвращает и отменяет их по ID транзакции.
Чтобы перейти:
Замените в платёжного модуля на , сохранив , и зарегистрируйте провайдер интеграции, как показано в разделе Настройка. Удалите старый пакет, потому что может быть только у одного провайдера.
Введите ключи и выберите Окружение в Medusa Admin. Старый плагин брал , и из , а этот берёт их из своих настроек.
Выберите Способ списания в настройках. Старый плагин только авторизовал платежи. С он записывал платёж списанным, но транзакция в Authorize.net оставалась авторизованной и через 30 дней истекала. Найдите такие транзакции в Merchant Interface и спишите те, что ещё ждут списания.
Замените код витрины. Старый плагин брал токен карты, адреса и доставку из данных сессии, которые присылала витрина. Этот плагин берёт у витрины только токен, а остальное получает из корзины, как описано в разделе Интеграция Authorize.net в витрину.