Реализация веб-хуков Stripe в Laravel с использованием Stripe CLI

Веб-перехватчики Stripe – это мощная функция, позволяющая получать уведомления от Stripe в режиме реального времени о различных событиях, таких как успешные платежи, отмена подписки или неудачное списание средств. В этой статье мы рассмотрим, как реализовать веб-перехватчики Stripe в приложении Laravel с помощью инструмента Stripe CLI.

Предварительные требования:

Прежде чем мы углубимся в реализацию, убедитесь, что у вас настроено следующее:

  1. Laravel установлен в вашей локальной среде разработки.
  2. Композитор установлен для управления зависимостями Laravel.
  3. Учетная запись Stripe и ключи API.

Шаг 1. Установите Stripe CLI

Для начала нам необходимо установить инструмент Stripe CLI, который обеспечивает удобный способ локального тестирования и обработки веб-перехватчиков. Следуйте официальному руководству по установке для вашей операционной системы, чтобы установить Stripe CLI.

Шаг 2. Настройте конечную точку веб-перехватчика в Laravel

Далее нам нужно настроить конечную точку веб-перехватчика в нашем приложении Laravel для получения и обработки событий веб-перехватчика, отправленных Stripe. Давайте создадим маршрут и контроллер для обработки событий веб-перехватчика.

  1. Определите маршрут в файле web.php:
Route::post('/stripe/webhook', 'StripeWebhookController@handleWebhook');
  1. Создайте новый контроллер с помощью следующей команды:
php artisan make:controller StripeWebhookController
  1. Откройте файл StripeWebhookController.phpи добавьте следующий код:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Cashier\Http\Controllers\WebhookController;
class StripeWebhookController extends WebhookController
{
    /
     * Handle a Stripe webhook.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function handleWebhook(Request $request)
    {
        $payload = $request->all();
        // Handle the webhook event based on the received payload
        // Implement your logic here
        return $this->successMethod();
    }
}

Шаг 3. Настройте интерфейс командной строки Stripe

Теперь давайте настроим CLI Stripe для пересылки событий веб-перехватчика на наш локальный сервер разработки.

  1. Откройте окно терминала и выполните следующую команду:
stripe login
  1. Следуйте инструкциям для аутентификации в своей учетной записи Stripe.

  2. После аутентификации выполните следующую команду для пересылки событий веб-перехватчика:

stripe listen --forward-to=http://localhost/stripe/webhook

Эта команда сообщает интерфейсу командной строки Stripe пересылать входящие события веб-перехватчика на указанный URL-адрес.

Шаг 4. Тестирование событий вебхука

Настроив CLI Stripe, вы теперь можете тестировать события веб-перехватчика и обрабатывать их в своем приложении Laravel.

  1. Откройте другое окно терминала и выполните следующую команду, чтобы смоделировать успешный платеж:
stripe trigger payment_intent.created
  1. Проверьте терминал, на котором работает ваше приложение Laravel, чтобы увидеть выходные данные события веб-перехватчика.

  2. Реализуйте необходимую логику в методе handleWebhookобъекта StripeWebhookControllerдля обработки определенного события веб-перехватчика.

В этой статье мы узнали, как реализовать веб-перехватчики Stripe в приложении Laravel с помощью инструмента Stripe CLI. Мы рассмотрели настройку конечной точки веб-перехватчика в Laravel, настройку интерфейса командной строки Stripe для пересылки событий и обработку событий веб-перехватчика в вашем приложении. Обладая этими знаниями, вы сможете легко интегрировать уведомления о событиях Stripe в режиме реального времени в свое приложение Laravel.