开发者社区> 问答> 正文

#支付宝 返回异常应如何处理?

接口报错返回code=20000,sub_code=isp.unknow-error 或 aop.ACQ.SYSTEM_ERROR,sub_msg=未知错误或系统异常等。

展开
收起
保持可爱mmm 2020-05-05 23:21:53 2666 0
1 条回答
写回答
取消 提交回答
  • 错误原因

    1、传参错误会导致支付异常。

    2、接口的大量调用错误,商户带宽被无效调用占用,容易导致访问支付宝速度变慢,并且容易引发商户端处理错误,造成系统无法正常使用,严重影响系统稳定性及用户体验。

    3、部分接口(支付宝预授权冻结接口,APP支付接口)提交方法有误也会出现isp.unknow-error(系统繁忙)错误

    解决方案

    1、避免不合法的传参

    建议方案:对所有返回 INVALID_PARAMETER 的响应进行监控,一旦发现请停止调用并检查请求参数,修改后重新发起请求。

    (1)根据云排查查询接口请求参数,进行对比检查,详见云排查流程;

    (2)根据文档检查参数是否正确,建议只传必传参数,避免其他参数干扰;

    (3)涉及资金交易接口:单笔转账接口、退款接口等,建议联系95188咨询账户是否正常。

    如账户资金转出功能关闭、账户风控等也可能导致调用报错系统异常。

    (4)建议保持请求参数不变的情况下,稍后重新测试调用。

    特殊说明:涉及资金交易接口(如:单笔转账、退款接口、扣款相关接口等),需确认该笔交易处理状态后,进行下一步逻辑处理,避免重复扣款转账等。

    2、接口调用发生异常时能够正确处理

    在调用支付宝接口时,可能会遇到网络超时或支付宝未知异常(接口返回 code=20000,sub_code=isp.unknow-error 或 aop.ACQ.SYSTEM_ERROR),此时业务处理结果是未知的,需要根据具体 API 采取一下措施。具体措施如下:

    (1)查询接口 alipay.trade.query 和撤销接口 alipay.trade.cancel 调用异常:

    立即重试一分钟,如果仍然返回超时或未知异常,需要记录该异常交易并走人工处理流程。

    (2)预下单接口 alipay.trade.precreate 调用异常:

    使用新的商户订单号 out_trade_no 重新调用预下单接口。

    (3) 退款接口 alipay.trade.refund 调用异常:

    使用相同的参数重试一分钟,如果仍然返回超时或未知异常,需要记录该异常交易并走人工处理流程,不能简单的推断为退款成功或失败。

    (4)支付接口 alipay.trade.pay 调用异常,立即调用查询接口,如果:

    查询的交易不存在(错误码 ACQ.TRADE_NOT_EXIST),使用相同的参数重新调用支付接口。

    网络超时或未知异常,继续查询一分钟,如仍然超时或未知异常,需要记录该异常交易并走人工处理流程,不能简单的推断为付款失败。

    当面付接口报错系统繁忙可参考轮询机制。

    3、sdk提交方法有误

    核实接口中的提交方法是否为sdkExecute方法,例如APP支付,支付宝预授权冻结接口如果使用execute方法作提交会直接返回isp.unknow-error错误,需要修改成sdkExecute方法进行生成请求字符串,作后续在客户端上进行调用请求

    2020-05-05 23:22:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
面向失败设计 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载