Інтеграція Stripe з будь-яким фреймворком є легкою. Stripe надає дуже хорошу документацію для інтеграції та тестування.
Сьогодні я хотів би обговорити тестування вебхуків Stripe в середовищі розробки. Досить важко знайти документацію, що стосується тестування вебхуків у середовищі розробки.
Я довго боровся, намагаючись протестувати події вебхуків на моєму локальному комп'ютері!
Існує кілька способів тестування вебхуків.
- Ultrahook
- Ngrok
- stripe-cli
Я покажу, як протестувати вебхуки Stripe, використовуючи stripe-cli з фреймворком Ruby on Rails.
Версія Rails: Rails 5.1.7
Версія Ruby: ruby 2.4.2p198
Я припускаю, що ви вже інтегрували Stripe у вашому додатку.
У вас має бути файл stripe.rb у config/initializers/stripe.rb.
Цей файл використовується для виконання користувацького коду на певні події Stripe.
Stripe.api_key = ENV['STRIPE_API_KEY']StripeEvent.signing_secret = ENV['STRIPE_SIGNING_SECRET'] StripeEvent.configure do |events| events.subscribe 'customer.subscription.deleted' do |event|
# Напишіть ваш власний код, який ви хочете виконати при події видалення підписки
end
end
У наведеному прикладі STRIPEAPIKEY — це ключ для інтеграції з Stripe.
STRIPESIGNINGSECRET — це підписаний секрет, який використовується для зв'язку зі Stripe через точку доступу Ultrahook або через stripe-cli.
Значення STRIPESIGNINGSECRET буде різним для кожного з цих з'єднань.
Вам потрібно зберігати STRIPEAPIKEY у файлі .env або, якщо ви тестуєте за допомогою будь-якої тестової системи, вказувати його в файлі .env.test.
Перший крок — це встановити stripe-cli на вашому локальному комп'ютері.
Перегляньте https://stripe.com/docs/stripe-cli, щоб дізнатися, як встановити stripe-cli.
Згідно з документацією, щоб активувати події Stripe, вам потрібно увійти за допомогою облікових даних Stripe. Однак ми розглянемо, як протестувати події Stripe без облікових даних для входу.
Спочатку потрібно почати прослуховування сервера Stripe за допомогою stripe-cli.
stripe listen --api-key ENV[‘STRIPE_API_KEY’]> Ready! Your webhook signing secret is **whsec_P3rrta1iba57AbetSBEjGeLJT27AIAx1** (^C to quit)
Скопіюйте згенерований код підпису секрету в змінну середовища STRIPSIGNINGSECRET.
Другий крок — це перенаправити всі події вебхуків на localhost.
stripe listen — forward-to localhost:3000/hooks --api-key ENV[‘STRIPE_API_KEY’]
Це прослуховуватиме події Stripe та передаватиме їх на localhost.
Якщо ви визначили власні маршрути для вебхуків, вам потрібно вказати цей шлях замість /hooks.
Третій крок — запустити ваш сервер Rails.
rails s
Останній крок — це викликати подію Stripe.
stripe trigger customer.subscription.deleted --api-key ENV[‘STRIPE_API_KEY’]
Ця команда ініціює подію видалення підписки користувача, і всі зворотні виклики будуть направлені на “localhost:3000/hooks”
Ура! Вона виконає код, написаний у файлі stripe.rb.
Перекладено з: Testing Stripe Webhooks in Development Environment