跳转到主要内容

概述

Dodo Payments API 提供详细的交易失败原因,帮助您理解为什么支付尝试未成功。这些失败原因在不同的支付方式和提供商之间是标准化的,使您能够在应用程序中实现一致的错误处理。 每个交易失败响应包括:
  • 一个特定的失败原因代码
  • 一个可读的错误信息
  • 可用时关于失败的额外上下文
  • 错误是否可以由用户纠正或需要系统干预
理解这些失败原因对于以下方面至关重要:
  • 向客户提供清晰的反馈
  • 实施适当的重试逻辑
  • 优雅地处理不同的失败场景
  • 维护可靠的支付处理系统

交易失败原因

下表列出了所有可能的交易失败原因、它们的含义以及它们是否是用户可纠正的错误。
用户错误 表示付款拒绝是否可由客户自行解决。 当 true 时,客户可以采取措施解决问题(例如输入正确的卡信息)。 当 false 时,拒付是由于系统级问题或银行限制,客户无法解决。

支持

如需有关交易失败或集成问题的更多帮助,请通过 support@dodopayments.com 联系我们的支持团队.

Handle Payment Failures

绝不要向客户透露 STOLEN_CARD, LOST_CARD, PICKUP_CARD, 或 FRAUDULENT 的真实原因。 公开这些信息可能会警告欺诈行为者。始终向客户展示通用的拒绝消息(例如,“您的卡已被拒绝。请联系您的银行或使用其他卡。”),具体代码仅供内部记录。

交易失败原因

下表列出了每个失败代码、拒绝类型、客户是否可以解决、描述以及推荐的操作。
用户错误 表示支付拒绝是否可以通过客户解决。当 Yes 时,客户可以采取行动解决问题(例如,输入正确的卡详细信息)。当 No 时,拒绝是由于系统级别问题或银行限制,客户无法直接解决。
当发卡行的风险引擎将持卡人标记为高风险客户时,卡也可能被拒绝 — 独立于商家或交易细节。此类拒绝通常显示为通用代码,如 DO_NOT_HONOR, GENERIC_DECLINE, CARD_DECLINED, TRANSACTION_NOT_APPROVED, 或 FRAUDULENT。在这些情况下,银行不会共享具体原因,Dodo Payments或商家无法覆盖该决定。请客户联系他们的银行解决该标记,或使用不同的卡或支付方式。

程序化处理失败

payment.failed webhook 或支付对象中读取 error_code,将其映射到上述推荐操作,并决定是否重试。对于订阅续期,系统会自动重试软拒绝 — 请参阅 订阅支付重试 对于API层和业务逻辑错误(如 PAYMENT_NOT_SUCCEEDEDREFUND_WINDOW_EXPIRED)而非卡拒绝,请参阅 错误代码 参考。

相关

Handle Payment Failures

检测、展示和重试支付失败的端到端指南。

Error Codes

非拒绝失败的API和业务逻辑错误代码。

Subscription Payment Retries

通过自动重试恢复订阅续期中的软拒绝。

Subscription Dunning

通过提示更新支付方式来恢复硬拒绝的电子邮件序列。

支持

如果需要更多关于交易失败或集成问题的帮助,请通过 support@dodopayments.com 联系我们的支持团队。
最后修改于 2026年6月26日