支払いが失敗したとき、Dodo Paymentsは標準化された
error_codeと人間が読めるerror_messageによって理由を通知します。このガイドでは、これらのフィールドを読み取る方法、再試行する価値があるかどうかを判断し、顧客に機密情報を露出せずに支払いを回収する方法を示します。Dodo Paymentsが報告する障害の方法
一度限りのチェックアウトかサブスクリプションの更新かに関わらず、すべての失敗した支払いには、支払いオブジェクトに同じ失敗フィールドが含まれています。| フィールド | 型 | 説明 |
|---|---|---|
status | string | 失敗した支払いのfailed。他の非成功状態にはcancelled、requires_customer_action、requires_payment_methodが含まれます。 |
error_code | string | null | 標準化された失敗の理由、例えばINSUFFICIENT_FUNDSやPROCESSING_ERROR。完全なリストは取引失敗リファレンスを参照してください。 |
error_message | string | null | 失敗の人間が読める説明。 |
retry_attempt | integer | 元の請求に対する0。1以上はスケジュールされたサブスクリプション更新の再試行を識別します。 |
error_codeとerror_messageは支払いが実際に失敗するまでnullです。最初にstatusを常に確認し、次にエラーフィールドを読み取ります。payment.failed Webhook
失敗を検出する最も信頼できる方法はpayment.failed webhookです。このイベントはdataにフル支払いオブジェクトをラップします。
payment.failed payload
error_codeを読み取り、それにルートします。
再試行するかどうかの決定:ソフト拒否とハード拒否
error_codeは、同じ支払い方法を再試行する価値があるかどうかを教えてくれます。
| 拒否タイプ | 意味 | すべきこと |
|---|---|---|
| ソフト拒否 | 一時的または修正可能(例えばINSUFFICIENT_FUNDS、PROCESSING_ERROR、NETWORK_ERROR、TRY_AGAIN_LATER)。 | 顧客が入力を修正した後、遅延後に再試行すると成功する可能性があります。 |
| ハード拒否 | 終局的(例えばSTOLEN_CARD、LOST_CARD、DO_NOT_HONOR、FRAUDULENT)。 | 同じカードを再試行しないでください。顧客に別の支払い方法を尋ねてください。 |
error_codeの拒否タイプと推奨操作が記載されています。
チェックアウトでの失敗と更新時の失敗の処理
回収方法は、顧客がその場にいるかどうかによって異なります。- At checkout (customer present)
- On subscription renewal (customer not present)
顧客が積極的にチェックアウトしています。明確なメッセージを表示し、すぐに再試行するか、別のカードを使用してもらいます。
requires_payment_method— 顧客が支払い方法を提供しなかった:カードの詳細を入力しなかったか、プロンプトが表示されたか、何の行動も取らなかった。これは通常、チェックアウトドロップオフであり、拒否ではありません — 顧客を再びエンゲージして支払いを完了させます(放棄されたカートの回収を参照してください)。requires_customer_action— 追加の認証(例えば3DS)が必要です。顧客にそれを完了させます。3D Secureの処理を参照してください。
失敗した支払いの再試行
- サブスクリプション: サブスクリプション支払い再試行を有効にし、統合作業なしでソフト拒否を回収します。また、顧客が支払い方法更新APIを通じて支払い方法を更新し、未払い金額を請求することで回収をトリガーすることもできます。
- 一度限りの支払い: チェックアウトを再送信するか
payment_linkを実行し、顧客が別の方法で再試行できるようにします。一度限りの支払いに自動再試行はありません。
顧客へのエラーを安全に表示する
顧客にフレンドリーなメッセージを表示し、決して生のerror_codeを表示しないでください。
Customer-facing messaging
関連情報
Transaction Failures
すべての拒否コード、そのタイプ、および推奨アクション。
Error Codes
カードの拒否でないAPIおよびビジネスロジックエラー。
Subscription Payment Retries
サブスクリプション更新でのソフト拒否の自動回復。
Subscription Dunning
ハード拒否を回収するメールシーケンス。
Payment Webhooks
支払いイベントのフルペイロードスキーマ。
Testing Failures
拒否と更新失敗をシミュレートするテストカード。