错误处理
支付宝返回的错误码可分为以下几类:
- 业务错误码:
此类错误码须用错误码消息进行描述,让收银员能够理解错误码的含义。需要训练收银员,使其能够处理业务错误码,或向顾客解释相关问题。 - 超时或系统错误码:
应在集成阶段涉及处理此类错误的机制。如果生产环境中出现此类错误,应触发商户的报警机制,并必须进行相关调查以帮助解决问题。
超时或系统错误(SYSTEM_ERROR)
HTTPS请求依赖网络的稳定性,因此支付,查询,撤销和退款接口都可能发生超时。同时,当支付宝系统内出现错误时,可能返回SYSTEM_ERROR。这两种情况下,您都可以进行重试,或通过查询与支付宝同步交易的最终结果。
- 对查询,撤销,或退款接口:
使用相同的参数进行重试,直到获得结果。若重试次数超过上限,会触发警报,并通知机构的技术支持团队进行检查。若重试结果一直是SYSTEM_ERROR,请联系支付宝技术支持寻求帮助。 - 对支付接口:
a. 使用相同的参数进行重试,直到获得结果。若重试次数超过上限,会触发警报,并通知机构的技术支持团队进行检查。若重试结果一直是SYSTEM_ERROR,请联系支付宝技术支持寻求帮助。
b. 如果超时或SYSTEM_ERROR被返回,调用查询接口获取状态。若查询同样超时,调用撤销接口关闭交易。
下表列出了使用方法a和方法b的区别:
支付宝状态 | 重试支付接口 | 重试查询接口 |
SYSTEM_ERROR | SYSTEM_ERROR | TRADE_NOT_EXIST |
WAIT_BUERY_PAY | UNKNOW | WAIT_BUERY_PAY |
TRADE_SUCCESS | TRADE_SUCCESS | TRADE_SUCCESS |
TRADE_CLOSED | TRADE_CLOSED | TRADE_CLOSED |