StripeからWebhookを受け付けるようにサイトを構成する方法
このドキュメントについて
Webフックにより、StripeはWordPressサイトにメッセージを送信できます。WP Simple Payの一部の機能(メール送信、分割払いプランの作成、顧客によるサブスクリプション支払い情報の更新、AffiliateWPとの連携など)には、Webフックの設定が必須です。
Stripeにエンドポイントを追加する
適切なWebhookエンドポイントを追加するには、Stripeダッシュボードの開発者 → Webhooksに移動します。

エンドポイントを追加をクリックし、次にWP Simple Pay → 設定 → Stripe → WebhooksにあるURLを追加します。


次に、+イベントを選択というラベルのボタンをクリックして、リッスンする特定のイベントを追加する必要があります。その後、以下の各イベントをコピーして、送信するイベントを選択 → イベントを検索の検索ボックスに貼り付けることができます。

各用語を検索した後、チェックボックスをクリックして追加し、追加の用語を検索します。以下のすべてのイベントをチェックするまで、イベントを追加をクリックしないでください。
payment_intent.processingpayment_intent.succeededcharge.failedcharge.refundedcharge.succeededcheckout.session.completedcustomer.subscription.deletedcustomer.subscription.updatedinvoice.payment_succeededinvoice.upcoming
これらの各イベントの機能に関する詳細は、このドキュメントの最後に示されています。
イベントの追加が完了したら、エンドポイントを追加をクリックしてプロセスを完了します。エンドポイントを追加すると、新しいURLがWebhooks設定に表示されるはずです。

Webhook署名シークレットの設定
Stripeは、エンドポイントに送信するWebhookイベントに署名してセキュリティを強化できます。強く推奨します。
これを行うには、ダッシュボードのWebhook設定からエンドポイントのシークレットを取得します。シークレットを取得したい追加されたエンドポイントを選択し、表示ボタンをクリックします。

次に、Stripeダッシュボードから署名シークレットをコピーし、WordPress管理画面のWP Simple Pay → 設定 → Stripe → Webhookに戻って、現在の支払いモードのエンドポイントシークレットテキストボックスに貼り付けます。
テストモードでも繰り返す
Webhookエンドポイントはテストモードでも作成する必要があります。Stripeダッシュボードの右上にあるテストモードトグルを切り替え、上記の手順を繰り返します。

イベントタイプの説明
invoice.payment_succeeded
- 分割払いのインクリメントに使用され、サブスクリプションの「支払い確認」および「支払い通知」メールを送信します。
- サブスクリプションが正常に作成された後の追加処理のために、
simpay_webhook_subscription_createdアクションを公開します。 - 請求書が処理された後の追加処理のために、
simpay_webhook_invoice_payment_succeededアクションを公開します。
<?php
add_action(
'simpay_webhook_subscription_created',
/**
* Fires when a subscription is created in Stripe.
*
* @param \SimplePay\Vendor\Stripe\Event $event Stripe webhook event.
* @param \SimplePay\Vendor\Stripe\Subscription $subscription Stripe Subscription.
*/
function( $event, $subscription ) {
// Do something.
},
10,
2
);
<?php
add_action(
'simpay_webhook_invoice_payment_succeeded',
/**
* Fires when a subscription invoice payment has succeeded.
* Does not fire for the subscription creation (first) invoice.
*
* @param \SimplePay\Vendor\Stripe\Event $event Stripe webhook event.
* @param \SimplePay\Vendor\Stripe\Invoice $invoice Stripe Invoice object.
* @param \SimplePay\Vendor\Stripe\Subscription $subscription Stripe Subscription object.
*/
function( $event, $invoice, $subscription ) {
// Do something.
},
10,
3
);
payment_intent.succeeded
- 都度払いの「支払い確認」および「支払い通知」メールを送信します。
- 支払いが正常に行われた後の追加処理のために、
simpay_webhook_payment_intent_succeededアクションを公開します。
<?php
add_action(
'simpay_webhook_payment_intent_succeeded',
/**
* Fires when a one-time payment has succeeded.
*
* @param \SimplePay\Vendor\Stripe\Event $event Stripe webhook event.
* @param \SimplePay\Vendor\Stripe\PaymentIntent $paymentintent Stripe PaymentIntent.
*/
function( $event, $paymentintent ) {
// Do something.
},
10,
2
);
invoice.upcoming
checkout.session.completed
- 生成された放棄されたStripe Checkoutレコードを削除するために使用されます。
- 必要に応じて追加処理を行うために、
simpay_webhook_checkout_session_completedアクションを公開します。
charge.succeeded
- ACHデビットを使用した都度払いの「支払い確認」および「支払い通知」メールを送信します。
- 支払いが正常に行われた後の追加処理のために、
simpay_webhook_charge_succeededアクションを公開します。
charge.failed
- 請求が失敗した後の追加処理のために、
simpay_webhook_charge_failedアクションを公開します。
よくある質問
Webhookは必要ですか?
支払いを処理するためにWebhookは必須ではありません。Webhookが失敗しても、支払いが処理されなかったことを意味するわけではありません。ただし、不正検出、メールレシート、次回の請求書通知、分割払いの管理などの機能にはWebhookが利用されます。
現在これらの機能を使用していなくても、将来的にこれらの機能を有効にすることにした場合や、WP Simple Pay が将来の機能でこれらの機能性を必要とする場合に混乱を避けるために、Webhook エンドポイントが正しく設定されていることを確認することを強くお勧めします。
「WP Simple Pay が正しく機能していない可能性があります」と表示されるのはなぜですか?
WP Simple Pay は、Webhook 機能(メール、分割払いプランなど)を利用する機能の中断を避けるために、Webhook エンドポイントの誤設定やエラーの可能性について警告します。WP Simple Pay が予期した Webhook イベントを検証できない場合、プラグイン設定内に通知バブルが表示され、「WP Simple Pay が正しく機能していない可能性があります」というエラーメッセージが表示されます。
誤設定された Webhook エンドポイントを修正するにはどうすればよいですか?
Webhook エンドポイントの誤設定の可能性を解決するには、Stripe ダッシュボードの「開発者 → Webhook」にアクセスしてください(テストモードの場合は、「テストモードのエンドポイントを表示」してください)。
「ホストされたエンドポイント」の下に、WP Simple Pay の Webhook イベント受信者を含むエントリが表示されるはずです:「wp-json/wpsp/v1/webhook-receiver」。このエンドポイントが表示されない場合は、この記事の冒頭に記載されている設定手順を完了してください。

WP Simple Pay エンドポイントの URL をクリックして、エンドポイントの設定を表示します。ここに、エンドポイントに送信された Webhook イベントのリストが表示されます。
「失敗した」タブをクリックして、失敗したイベントを一覧表示します。

失敗した Webhook イベントがある場合、エントリのいずれかを選択すると、エンドポイント URL から受信した応答が表示されます。この応答には、多くの場合、「応答」セクションでエンドポイントがイベントの処理に失敗した理由に関する情報が含まれています。

リモートホストへの接続に失敗しました
Stripe はサーバーとの通信に失敗しました。Web サーバーがリクエストに応答していること、特に Stripe の完全修飾ドメイン名および IP アドレスすべてに応答できることを確認してください。
ペイロードの期待される署名と一致する署名が見つかりませんでした
Stripe は、「WP Simple Pay → 設定 → Stripe → Webhook」で指定された署名シークレットを使用して Webhook イベントデータを検証できませんでした。Webhook エンドポイントを表示しているときに、「署名シークレット」の下にある「表示」をクリックし、各支払いモードの WP Simple Pay で署名シークレット設定を更新してください。
404 エラー <!DOCTYPE html>
Webhook エンドポイント URL が正しくなく、404 ページが見つかりませんというページを指しています。「WP Simple Pay → 設定 → Stripe → Webhook」にアクセスして、Webhook エンドポイント URL の正しい値を見つけ、Stripe のエンドポイントを更新してください。

エンドポイントの設定を確認しましたが、エラーが引き続き表示されるのはなぜですか?
WP Simple Payは、真のエラーが見過ごされないように、意図的に設定ミスに対して過剰に反応します。しかし、Webhookイベントの設定ミスに関する誤検知通知を受け取る可能性は依然としてあります。これは、Stripeがイベントデータを送信するのに平均よりも長い遅延がある場合、またはStripe Checkoutでオフサイトの支払いページが放棄された場合に発生する可能性があります。
エンドポイントで失敗したWebhookエンドポイントイベントがないことを確認した場合、以下の手順に従って設定通知を無効にすることができます。
Webhook設定通知を無効にできますか?
前述のように、Webhookエンドポイントを適切に設定し、有効にしておくことを強くお勧めします。ただし、ご自身の責任において、設定ミスや不適切に受信されたイベントに関するアラートを受け取りたくない場合は、WP Simple Pay → 設定 → Stripe → Webhooks で「再度表示しない」をクリックして、通知を永続的に却下できます。
ご不明な点はまだありますか?喜んでお手伝いさせていただきます!
最終更新日: