Skip to main content
三种拒绝占了大多数上线工单:A0018、A0001 和 C0005。它们看起来很像—— 一个错误码、一句简短消息、没有细节——但需要完全不同的应对。本页就是 决策树。逐错误码的参考是已发布的 错误码列表;每个错误码的 机制在 常见错误排障和 限额、币种与配置错误中。

我看到的是哪一种?

第一个字母是最快的分流依据:A 由你修复,C 在 Waffo 或 支付方式一侧,E 表示未确定。绝不要把 E 当作失败——规则和 重试模式在已发布的 错误处理中。

A0018 是”尚未开通”,还是我传错了什么?

两者都有可能,这正是问题的关键。A0018 不是指”你指定的支付方式 没有签约”。它的意思是你签约的内容中没有任何一项在整个请求下存活, 而请求会同时在多个维度上收窄候选项。其中任何一个都可能把集合 清空,而它们全部返回同一个错误码和同一条消息。 按以下顺序逐一排查——你找到的第一个不匹配就是答案: 所以:未开通和传错是通过排除法而不是错误码来区分的。 最快的 区分方法:
  1. 调用 /api/v1/paymethodconfig/inquiry。如果方式、国家和币种的组合不在 响应中,那就是配置问题——你在载荷中改任何东西都没用。
  2. 如果它在响应中且可用性为”available”,则该组合已签约, 拒绝来自请求本身添加的某些内容——上面第 1、6、7、8、9 行之一。 逐个移除可选的收窄参数并重试。
有两个错误码与 A0018 相邻,含义与缺少合同相反——它们表示你有 不止一个匹配,必须指定明确:A0022(指明产品)和 A0033(指明 支付方式国家)。

为什么不支持的币种没有自己的错误码?

因为币种是上述维度之一,不是单独的检查。你未签约的订单币种或 币种对会以 A0018 返回,带支付方式的措辞。不要 等待一个币种专属的错误码——参见 使用某个币种前我必须先开通它吗?。

同一个错误码出现在订阅上,含义一样吗?

错误码共用但解读不同。在收单侧它是上述合同不匹配。 在订阅侧它表示没有可用的支付方式来向该 订阅者扣款——例如已保存的方式被移除了。已发布的错误码列表按 第二种方式解释;而你收到的消息文本是合同措辞。请结合你调用的 API 一起解读。 值得为之构建的一个后果:在首个周期之后的续订上,此错误码被视为 不可重试——调度不会继续尝试。请修复支付方式,而不是等待 重试。参见 订阅重试与支付方式。

我轮换了密钥,现在收到 A0001。新密钥坏了吗?

通常不是。按顺序排除三件事: 该窗口有多长、密钥、其范围、签名和你的 IP 白名单的精确检查顺序,以及 A0001 与 A0002 和范围拒绝的区别,在 API 凭据范围与鉴权错误分流中。 提交和轮换流程,以及在哪里查看提交被拒绝的原因,在 生产 API 密钥与公钥中。 如果密钥被接受但调用仍被拒绝,原因通常是该密钥 被允许做什么——那是另一种拒绝,不是 A0001。

C0005 到底告诉我什么,原因在哪里?

C0005——Payment channel rejection——表示支付方式拒绝了支付。就其本身而言 它几乎什么都没告诉你,因为它是大量底层拒绝所映射到的错误码, 包括每一次卡被拒绝。 细节在随订单返回的失败原因中,它有两部分: 它们作为 orderFailedReason 一起出现在 订单查询中,Portal 在交易 记录上以 Order Failure Code 和 Order Failure Description 显示同一对字段——参见 交易字段参考。 所以常规做法是:绝不要基于 C0005 分支;基于其中的失败码分支。 诸如 无法启动的认证步骤、或发卡行因欺诈或法律原因拒绝的卡, 正是通过这种方式到达的信息,它们需要 截然不同的处理。

哪些 C0005 失败值得重试?

可重试性属于底层原因,而不是 C0005。分类以及每一类 该怎么做——包括哪些拒绝绝不能重试、哪些需要顾客 重新输入凭据——在 卡被拒绝了,我应该重试吗?中。 在此之上的两条规则:
  • 向顾客显示可用的消息并提供另一种支付方式。 Waffo 在集成验收时 会针对渠道拒绝和系统不可用响应精确检查这一行为—— 参见已发布的 验收标准。
  • 在沙箱中,若干保留金额会故意返回 C0005,以便你构建该路径。如果 你在一个你没预料到有特殊含义的金额上收到 C0005,请在下结论前先检查保留列表——参见 沙箱模拟器。

退款返回了 A0017。那笔订单还能通过 API 退款吗?

A0017——订单无法退款,因为支付渠道不支持——来自 支付方式本身,并且不可重试。原样再发一次会得到 同样的答案。 在把它视为最终结果之前,先把它与其他退款拒绝区分开: 这四种情形及各自的处理办法,在 支付方式退款与限额和 退款 FAQ中。

接下来我该看哪里?