Webhook を使用してアクションをトリガーする
Webhook を使用してオフラインの支払いイベントに対応する方法は以下のとおりです。
Webhook は、Stripe からイベントを受信する HTTP エンドポイントです。
Webhook を使用すると、決済フロー外で発生する以下のような支払いイベントに関する通知を受け取ることができます。
- 支払いの成功 (
payment_
)intent. succeeded - 支払いへの不審請求の申請 (
charge.
)dispute. created - Stripe アカウントの利用可能な残高 (
balance.
)available
ダッシュボードを支払いの返金や顧客情報の更新などの 1 回限りのアクションの用途に使用できるのに対して、Webhook は決済システムを拡張したり、ビジネスに影響する重要なイベントを大量に処理するのに役立ちます。
独自の Webhook を構築する
お客様独自のサーバーで Webhook ハンドラを構築し、オフラインのすべての決済フローを管理できます。まず、Stripe からのリクエストを受信できるエンドポイントを公開し、CLI を使用してシステムをローカルでテストします。Stripe からの各リクエストには Event (イベント) オブジェクトと、修正された Stripe 上のオブジェクトへの参照が含まれます。
Webhook エンドポイントを作成する
アプリケーションに新しいエンドポイントを追加します。リクエスト本文で送信されたイベントオブジェクトの type
フィールドを確認することにより、特定のイベントに対応できます。次に、Webhook が機能していることを確認するため、標準的な出力を確認できます。
新しいエンドポイントを追加した後で、サーバを起動します。
Stripe CLI をインストールして設定する
その他のインストールオプションについては、Stripe CLI を使ってみるをご覧ください。
Stripe CLI をインストールしたら、コマンドラインで stripe login
を実行して Stripe アカウントにリンクするためのペアリングコードを生成します。Enter キーを押してブラウザを立ち上げ、アクセスを許可する Stripe アカウントにログインします。生成された API キーは 90 日間有効です。ダッシュボードの API キーの下で、キーを修正したり削除したりできます。
注
ログイン時、およびそのプロジェクトに対するコマンドを実行する際に、–project-name フラグを含めることで、プロジェクト固有の設定を作成できます。
テスト
stripe login Your pairing code is: humour-nifty-finer-magic Press Enter to open up the browser (^C to quit)
既存の API キーを使用する場合は、--api-key
フラグを使用します。
stripe login --api-key
Your pairing code is: humour-nifty-finer-magic Press Enter to open up the browser (^C to quit)sk_test_4eC39HqLyjWDarjtT1zdp7dc
Webhook をローカルでテストする
CLI を使用して、listen
コマンドでローカル Webhook エンドポイントにイベントを転送します。
アプリケーションがポート 4242 で実行されていると仮定し、以下を実行します。
stripe listen --forward-to http://localhost:4242/webhook
別の端末タブで、trigger
CLI コマンドを使用して模擬 Webhook イベントをトリガーします。
stripe trigger payment_intent.succeeded
listen
タブには次のイベントが表示されます。
[200 POST] OK payment_intent.succeeded
サーバーを実行中の terminal タブに「PaymentIntent was successful! (PaymentIntent は正常に処理されました)」と表示されます。
Webhook エンドポイントをデプロイする
Webhook エンドポイントを本番環境にデプロイする準備ができたら、以下を実行する必要があります。
テスト環境のキーではなく、本番環境の API キーを使用します。
Stripe ダッシュボードまたは API で、Webhook エンドポイントを設定します。
ダッシュボードでエンドポイントを設定するには、Webhook の設定に移動します。
エンドポイントを追加をクリックして、エンドポイントの URL、Stripe API バージョン、および Stripe から送信する特定のイベントを入力します。
アプリケーションの Webhook エンドポイントのシークレットを、エンドポイントのダッシュボードに表示される新しいシークレットに置き換えます。
アプリケーションで本番環境のイベントを受け付ける準備ができました。Webhook エンドポイントの設定について、詳細は Webhook Endpoint API をご覧ください。テスト環境でのテストについては開発者用ガイドをご覧ください。