Stripe Cashier Webhooks

Я ищу разъяснения по поводу использования контроллера Webhooks в Stripe Cashier, как описано в Документах Laravel, поскольку не могу подтвердить, что мое приложение получает события webhook:

http://laravel.com/docs/5.0/billing#handling-failed-payments

Документы советуют указывать маршрут к контроллеру webhook следующим образом:

Route::post('stripe/webhook', 'Laravel\Cashier\WebhookController@handleWebhook');

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

То, что я ищу для разъяснения о том, каким должен быть URI как для тестирования, так и для производства. Для тестирования я должен просто использовать URL-адрес пересылки ngrok (например, http://3a4bfceb.ngrok.com) или мне нужно иметь скрипт в общедоступном каталоге для обработки события webhook от Stripe.

Я не уверен, что контроллер способен обрабатывать получение данных с помощью handlePayload функция или если мне нужно добавить дополнительный скрипт PHP (например, webhook.php) с чем-то, как описано в документах Stripe, таких как:

// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account
Stripe::setApiKey("sk_test_xxxxxxxxxxxxxxxxxxxxxxx");

// Retrieve the request's body and parse it as JSON
$input = @file_get_contents("php://input");
$event_json = json_decode($input);

// Do something with $event_json

http_response_code(200); // PHP 5.4 or greater

Если кто-то может помочь с тестированием и производственным URI и требуется ли дополнительный сценарий обработки сверх того, что кассир WebhookController.php предложения, я был бы признателен.

0

Решение

ngrok, конечно, будет работать, но это ручное тестирование, которое не совсем то, что вы должны тестировать;)

Вы можете прочитать немного больше о тестировании полосовых веб-хуков локально здесь: введите описание ссылки здесь

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

(полное раскрытие: мой партнер и я написали и блог, и упомянутый пакет)

1

Другие решения

Что касается URI, локальные / тестовые и производственные URI выглядят примерно так (предполагается, что используется ngrok):

Local / Test: http://3a4bfceb.ngrok.com/laravel/public/stripewebhooks

Производство: http://website.com/stripewebhooks

Маршрут в обоих случаях будет:

Route::post('stripewebhooks','Laravel\Cashier\WebhookController@handleWebhook');

WebhookController.php (который входит в пакет Cashier) обрабатывает все входящие события, поэтому нет необходимости создавать файл, как stripewebhooks.php содержащий file_get_contents код ответа 200, как описано в документах Stripe для реализации без кассира.

0

По вопросам рекламы [email protected]