拒绝码
Authorize.Net 响应原因代码解释
核实日期
Authorize.Net 会返回一个响应代码(1 表示批准,2 表示拒绝,3 表示错误,4 表示待审核)以及一个说明原因的响应原因代码。有些原因是购物者的银行拒绝了,有些是您自己的欺诈过滤器,还有许多是购物者无法解决的设置或集成错误。下面的每个页面都会用通俗易懂的语言解释一个原因代码,是否可以重试,以及当 PlatformDTC 在商家的 Authorize.Net 账户上看到该代码时会怎么做。
| 原因代码 | 含义 |
|---|---|
| 2 | 发卡机构,或代表发卡机构的处理器,拒绝了支付,但没有给出具体原因。 |
| 3 | 发卡行在批准此笔交易前,需要进行语音授权(电话确认)。 |
| 4 | 处理器报告卡片必须被收回:发卡行希望停止使用该卡。 |
| 41 | 您自己的 FraudScreen.Net 阈值阻止了此支付,因为其欺诈分数过高。 |
| 141 | FraudScreen.Net 拒绝了支付,但授权的自动作废未能成功。 |
| 44 | 支付处理方拒绝了交易,因为卡的验证码 (CVV) 与银行记录不符。 |
| 45 | 地址检查和验证码检查都触发了您设置的拒绝规则。 |
| 145 | 您的 AVS 和卡片安全码过滤器拒绝了这笔交易,但授权的自动作废失败了。 |
| 65 | 您的卡片安全码 (CVV) 过滤器根据安全码结果拒绝了付款。 |
| 165 | 安全码不匹配触及了您的设置,并且授权的自动作废失败了。 |
| 27 | 输入的账单地址与发卡银行存档的地址不匹配。 |
| 127 | AVS 不匹配拒绝了销售,并且自动作废失败,因此银行卡上可能会保留一笔预授权。 |
| 128 | 顾客的银行目前不允许在此账户上进行交易。 |
| 250 | 该支付来自您在 Authorize.Net 欺诈工具中阻止的 IP 地址。 |
| 251 | 欺诈检测套件过滤器拒绝了支付,包括被阻止 IP 过滤器。 |
| 252 | 付款已接受,但被设置为“保留”的欺诈筛选器保留以供您审核。 |
| 253 | 卡已授权,但欺诈筛选器正在保留付款以供您审核。 |
| 254 | 您或您的团队在审核待审核交易后拒绝了付款。 |
| 295 | 预付卡只支付了部分金额;其余部分需要另行付款。 |
| 36 | 银行在结账时批准了该卡,但在结算时支付失败了。 |
| 6 | 卡号未能通过验证:可能是打字错误、缺少数字,或者不是真实的卡号。 |
| 37 | 卡号因无效而被拒绝(与代码 6 的文本相同)。 |
| 315 | 处理器拒绝了无效的卡号。 |
| 7 | 有效期发送格式不正确或不是有效日期。 |
| 316 | 处理器拒绝了卡片的有效期,认为其无效。 |
| 8 | 卡片的有效期已过,因此无法再进行扣款。 |
| 317 | 处理器拒绝了,因为卡已过期。 |
| 78 | 发送的安全码 (CVV) 格式不正确,例如位数错误。 |
| 11 | 在重复交易窗口期内(默认为两分钟)发送了一笔相同的交易。 |
| 318 | 处理器拒绝了该请求,因为它与之前的交易重复。 |
| 17 | 您的 Authorize.Net 网关未设置为接受此银行卡品牌。 |
| 28 | 您的支付处理器平台未设置为接受此银行卡品牌。 |
| 56 | 该账户只处理 eCheck 支付,因此信用卡支付被拒绝。 |
| 39 | 发送的货币与您的 Authorize.Net 账户设置的货币不符。 |
| 49 | 金额超过了您的账户允许的最大交易金额。 |
| 5 | `amount` 字段缺失或不是有效数字。 |
| 13 | API 登录 ID 错误,发送到错误的环境,或账户处于非活动状态。 |
| 123 | 使用了个人用户登录信息来连接软件;它需要的是 API 登录 ID。 |
| 124 | 您的支付处理器不支持标记为循环的交易。 |
| 153 | 钱包支付数据(例如 Apple Pay)无法按发送方式处理。 |
| 154 | 此 Authorize.Net 账户尚未开启 Apple Pay。 |
| 289 | 您的支付处理商不会为此银行卡品牌进行 $0 的银行卡检查。 |
| 19 | Authorize.Net 未收到银行卡处理方的回复(连接问题)。 |
| 20 | Authorize.Net 在收到回复前与银行卡处理方失去了联系。 |
| 35 | 您的商户账户在处理方设置不正确。 |
| 57 | 支付处理商无法解释请求中的数据,例如不正确的 CVV 长度或邮政编码格式。 |
| 63 | 通常,您的业务详情(例如国家/地区)对于 TSYS 支付处理商账户来说是错误的。 |
| 120 | 原始交易超时,并且其自动撤销也失败了。 |
| 16 | 您引用的交易 ID(用于退款或撤销)不在此 Authorize.Net 账户上。 |
| 50 | 您只能退款已结算的交易;这笔交易尚未结算。 |
| 54 | 无法发出退款:未结算、类型或币种错误、ID无效,或已结算超过 180 天。 |
| 55 | 本次退款加上之前的退款将超过原始付款金额。 |
| E00027 | API 报告交易失败;真正的原因在交易的 errorCode 中。 |
| E00007 | API 登录 ID 或交易密钥不正确,或发送到了错误的环境。 |
| E00001 | Authorize.Net 遇到内部错误;请求未完成。 |
| E00003 | 发送到 API 的请求格式不正确,因此 Authorize.Net 无法读取。 |
| E00013 | 请求中的一个字段包含无效值;响应文本会指出是哪个字段。 |
| E00039 | 账户中已存在具有相同详细信息的客户资料。 |
| E00040 | 您引用的客户或支付资料在此账户中不存在。 |
| E00044 | 此账户未启用已保存的客户资料 (CIM)。 |
| E00009 | 账户处于测试模式,因此请求未被处理。 |
银行拒绝、您的过滤器或设置错误
代码 2、3、4 和 128 来自发卡银行。代码 27、41、44、45、65 以及 250 到 254 涉及地址验证、安全码验证或欺诈过滤器,其中有几个是您可以在商家界面中自行配置的。
代码 13、17、28、35、39 和 63 等是账户设置问题;在设置修复之前,每个购物者都会遇到这些问题。代码 19、20 和 E00001 是临时处理错误。
重试规则
卡网络限制重试次数。Visa 绝不允许对其“发卡方不批准”的响应进行重试(例如,收回卡片、账户已关闭或停止支付),并将其他拒绝的重试次数限制在 30 天内 15 次。Mastercard 建议代码 03 和 21 意味着不要再次尝试。
在续订订阅时,PlatformDTC 读取原因代码的方式与读取 Stripe 拒绝的方式相同:过期、错误或被阻止的卡片(例如 4、6、7、8、27、44、251 和 317)不会被重试,并会要求客户提供新卡;一般拒绝(2)或转介(3)会在 48 到 72 小时后获得一次重试;临时处理错误会被推迟并重试,而不会计入客户的重试次数。
开发者须知
总体结果是 `transactionResponse.responseCode` (1 表示批准,2 表示拒绝,3 表示错误,4 表示待审核)。原因代码是 `transactionResponse.errors[0].errorCode` 附带 `errorText`;API 级别的结果使用 `messages.message[0].code` (I000xx 表示成功,E000xx 表示错误)。
常见问题
- Authorize.Net 响应代码和原因代码之间有什么区别?
- 响应代码是总体结果(1 表示批准,2 表示拒绝,3 表示错误,4 表示待审核);响应原因代码解释了原因。
- PlatformDTC 是否与 Authorize.Net 兼容?
- 是的。商家可以连接自己的 Authorize.Net 账户进行结账和订阅续订;卡片详细信息通过 Authorize.Net 的 Accept.js 处理,因此卡号绝不会接触 PlatformDTC 的服务器。
来源
- Authorize.Net 响应代码工具(响应原因代码) — Authorize.Net
- Authorize.Net API 参考:`createTransactionResponse` 字段 — Authorize.Net
- 映射到 Visa 系统完整性费用类别(重试限制) — Adyen
- Mastercard 商家建议代码(重试指南) — Checkout.com