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 を参照してください。
Checkout時と更新時の失敗への対応
顧客がその場にいるかどうかによって、回復方法は異なります。- At checkout (customer present)
- On subscription renewal (customer not present)
失敗した支払いの再試行
サブスクリプション: Subscription Payment Retries を有効にすると、ソフトディクラインを自動的に回復できます。スケジュールを待たずにすぐ再試行するには、ダッシュボードまたは API から Manual Payment Retry を使用します。また、Update Payment Method API を使用して顧客に決済手段を更新してもらうことで、未払いの料金を請求し、回復を開始することもできます。 一回限りの決済: checkout またはpayment_link を再送信し、顧客が別の決済手段で再試行できるようにします。一回限りの決済には自動再試行はありません。
顧客にエラーを安全に表示する
顧客には親しみやすいメッセージを表示し、raw のerror_code やマーチャント向けの error_message は決して表示しないでください。
Dodo Payments が管理する画面(checkout、Customer Portal、督促メール)では、不正に関連するディクラインに対する汎用メッセージへのフォールバックを含め、このマッピングがすでに行われています。以下のマッピングが必要なのは、自社のプロダクトで失敗を表示する場合のみです。
Customer-facing messaging
関連情報
Transaction Failures
すべてのディクラインコード、その種類、推奨アクション。
Error Codes
カードのディクラインではない API およびビジネスロジックのエラー。
Subscription Payment Retries
サブスクリプション更新時のソフトディクラインを自動的に回復します。
Subscription Dunning
ハードディクラインを回復するメールシーケンス。
Payment Webhooks
決済イベントの完全な payload スキーマ。
Testing Failures
ディクラインと更新失敗をシミュレートするテストカード。