Настройка веб-перехватчика Stripe
В этой статье мы расскажем, как настроить веб-хуки Stripe, чтобы MEC надежно завершал бронирования, даже если клиент больше никогда не вернется на ваш сайт.
Зачем нужны веб-хуки?
По умолчанию MEC подтверждает бронирование через Stripe, когда клиент перенаправляется обратно на ваш сайт после оплаты. Если клиент закрывает вкладку браузера, теряет соединение или перенаправление блокируется, платеж в Stripe проходит успешно, но бронирование так и не завершается.
Благодаря веб-хукам Stripe напрямую уведомляет ваш сайт об успешных платежах. Затем MEC самостоятельно подтверждает бронирование, независимо от действий браузера клиента. Это значительно сокращает количество обращений в службу поддержки по поводу билетов, которые «оплачены, но не забронированы».
Веб-хуки работают как для платежных шлюзов Stripe , так и для Stripe Connect.
Примечание: Веб-хуки необязательны, но настоятельно рекомендуются. Без веб-хука MEC переходит в режим перенаправления.
Шаг 1 – Скопируйте URL-адрес вашего веб-перехватчика
Перейдите в Настройки MEC > Бронирование > Платежные шлюзы > Stripe и найдите поле « Секретный ключ веб-перехватчика» . Под этим полем отображается URL-адрес веб-перехватчика вашего сайта:
https://yourdomain.com/wp-json/mec/v1/stripe/webhook
Скопируйте этот URL-адрес, и на следующем шаге вы вставите его в свою панель управления Stripe.
Шаг 2 – Добавьте конечную точку в Stripe
- Войти в свой Полосовая панель приборов.
- Перейдите в Разработчики > Веб-хуки.
- Нажмите Добавить конечную точку.
- Вставьте URL-адрес веб-перехватчика, скопированный на шаге 1.
- Под Выберите событияВыберите только следующее событие:
- payment_intent.succeeded
- Нажмите Добавить конечную точку.
Шаг 3 – Скопируйте секретный ключ для подписи.
После создания конечной точки Stripe отображает её Секретная подпись (начинается с whsec_). Нажмите Выявить и скопируйте его.
Шаг 4 – Вставьте секрет в MEC
Вернитесь в настройки MEC > Бронирование > Платежные шлюзы > Stripe , вставьте секретный ключ подписи в поле «Секретный ключ веб-перехватчика» и сохраните настройки.
Вот и всё. Теперь MEC проверяет каждое сообщение веб-хука, используя этот секретный ключ; запросы, поступающие не с вашего аккаунта Stripe, отклоняются.
Stripe Connect
Если вы используете шлюз Stripe Connect , настройте веб-перехватчик для своей учетной записи платформы аналогичным образом:
- Шаблон URL-адреса веб-перехватчика идентичен (
/wp-json/mec/v1/stripe/webhookна вашем сайте). - Подписаться
payment_intent.succeeded. - Вставьте секретный ключ для подписи в Секрет веб-перехватчика поле настроек Stripe Connect.
Когда модуль «Оплата организаторам» включен и организаторы подключают свои собственные учетные записи Stripe, в настройках для каждого организатора используется одно и то же поле «Секретный ключ веб-перехватчика» для конечной точки подключенной учетной записи.
Тестирование вашего веб-хука
- Включите Песочница/тестовый режим в настройках платежного шлюза Stripe (или используйте тестовые ключи Stripe).
- Забронируйте мероприятие с помощью Stripe. тестовая карта (например
4242 4242 4242 4242). - Сразу после оплаты закройте вкладку браузера, прежде чем произойдет перенаправление.
- Через несколько секунд проверьте МЭК > БронированиеБронирование должно отображаться как подтвержденное, полученное через веб-хук, а не в результате перенаправления.
Также вы можете просмотреть отправленные данные в разделе «Разработчики» > «Веб-хуки» > «Ваш конечный пункт» на панели управления Stripe, чтобы увидеть каждое событие, полученное MEC.
Диагностика неисправностей
«Недействительная подпись веб-перехватчика Stripe»
Секретный ключ подписи не совпадает. Раскройте секретный ключ именно той конечной точки, которую вы создали, и вставьте его снова в MEC. Если вы создали конечную точку заново, помните, что для новой конечной точки будет присвоен новый секретный ключ.
«Секретный ключ веб-перехватчика Stripe не настроен»
Поле Webhook Secret в MEC пустое. Выполните шаг 4.
События отображаются в Stripe, но бронирование не подтверждено.
Убедитесь, что конечная точка подписана на payment_intent.succeeded (Вы не checkout.session.completed или других событий), и что URL-адрес веб-перехватчика указывает на тот же веб-сайт, на котором оформлено бронирование.