0

アプリケーションが Webhook イベントを受信して​​いることを確認できないため、Laravel Docs に記載されているように、Stripe Cashier で Webhooks Controller を使用する方法の説明を探しています。

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

ドキュメントでは、次のように Webhook コントローラーへのルートを指定することをお勧めします。

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

ルートの URI は、Stripe 設定の URI になるように変更する必要があります。テスト環境では、ngrok を使用してローカル サーバーを公開しています。

私が明確化を求めているのは、テストと本番の両方で URI がどうあるべきかということです。テストのために、ngrok 転送 URL (例: http://3a4bfceb.ngrok.com ) を使用するか、Stripe からの webhook イベントを処理するスクリプトを公開ディレクトリに置く必要がありますか?

コントローラーが関数を使用してデータの受信を処理できるかどうか、または次のような Stripe ドキュメントで説明されているものを使用してhandlePayload追加の php スクリプト (例: ) を追加する必要があるかどうかはわかりません。webhook.php

// 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

4

2 に答える 2

1

ngrok はもちろん機能しますが、それは手動テストであり、実際にテストする方法ではありません;)

ストライプ Webhook をローカルでテストする方法について詳しくは、こちらをご覧ください: ここにリンクの説明を入力してください

ngrokなどを介してローカル環境を公開する必要なく、自動Webhookテストを有効にするように特別に設計されたパッケージを使用しています.

(完全な開示:私のパートナーと私はブログ投稿と言及されたパッケージの両方を書きました)

于 2015-04-23T11:17:56.160 に答える
0

URI に関しては、ローカル/テスト URI と運用 URI は次のようになります (ngrok が使用されていると仮定します)。

ローカル/テスト: http://3a4bfceb.ngrok.com/laravel/public/stripewebhooks

制作: http://website.com/stripewebhooks

両方の場合のルートは次のようになります。

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

WebhookController.php(Cashier パッケージの一部です) はすべての受信イベントを処理するため、Cashier を使用しない実装については、Stripe ドキュメントで説明されているように、200 応答コードstripewebhooks.phpを含むようなファイルを作成する必要はありません。file_get_contents

于 2015-02-19T18:34:05.360 に答える