支払いが失敗したとき、Dodo Paymentsは標準化された
error_codeと人間が読めるerror_messageによって理由を通知します。このガイドでは、これらのフィールドを読み取る方法、再試行する価値があるかどうかを判断し、顧客に機密情報を露出せずに支払いを回収する方法を示します。Dodo Paymentsが報告する障害の方法
一度限りのチェックアウトかサブスクリプションの更新かに関わらず、すべての失敗した支払いには、支払いオブジェクトに同じ失敗フィールドが含まれています。error_codeとerror_messageは支払いが実際に失敗するまでnullです。最初にstatusを常に確認し、次にエラーフィールドを読み取ります。payment.failed Webhook
失敗を検出する最も信頼性の高い方法は、payment.failed webhookです。このイベントには、data内の完全な支払いオブジェクトが含まれます。
payment.failed payload
error_codeを読み取り、それに基づいて処理を振り分けます。
再試行するかどうかを判断する:Soft declineとHard decline
error_codeは、同じ支払い方法で再試行する価値があるかどうかを示します。
Transaction Failuresリファレンスには、すべての
error_codeについて、拒否タイプと推奨アクションが記載されています。
Checkout時と更新時の失敗への対応
顧客がその場にいるかどうかによって、回復方法は異なります。- At checkout (customer present)
- On subscription renewal (customer not present)
顧客はCheckoutを進行中です。わかりやすいメッセージを表示し、すぐに再試行するか、別のカードを使用できるようにしてください。
requires_payment_method— 顧客が支払い方法を一度も提示していない状態です。カード情報を入力しなかったか、入力を求められたものの何も操作しなかったことを意味します。通常、これは拒否ではなくCheckoutからの離脱です。Abandoned Cart Recoveryを参照し、支払いを完了してもらうために顧客へ再度アプローチしてください。requires_customer_action— 追加の認証(3DSなど)が必要です。顧客に認証を完了してもらってください。3D Secure handlingを参照してください。
失敗した支払いの再試行
- サブスクリプション: Subscription Payment Retriesを有効にすると、追加の連携作業なしでSoft declineを回復できます。Update Payment Method APIを使用して顧客に支払い方法を更新してもらうことでも、回復を開始できます。このAPIは未払いの料金を請求します。
- 1回限りの支払い: Checkoutまたは
payment_linkを再送信し、顧客が別の方法で再試行できるようにします。1回限りの支払いには自動再試行はありません。
顧客にエラーを安全に表示する
顧客には親しみやすいメッセージを表示してください。生のerror_codeや、加盟店向けのerror_messageを表示してはいけません。
Dodo Paymentsが管理する画面(Checkout、Customer Portal、および督促メール)では、詐欺に関連する拒否に対する一般的なメッセージへのフォールバックを含め、このマッピングがすでに適用されています。以下のマッピングが必要なのは、自社プロダクト内で失敗を表示する場合のみです。
Customer-facing messaging
関連情報
Transaction Failures
すべての拒否コード、そのタイプ、および推奨アクション。
Error Codes
カードの拒否ではないAPIおよびビジネスロジックのエラー。
Subscription Payment Retries
サブスクリプション更新時のSoft declineの自動回復。
Subscription Dunning
Hard declineを回復するメールシーケンス。
Payment Webhooks
支払いイベントの完全なペイロードスキーマ。
Testing Failures
拒否や更新失敗をシミュレートするテストカード。