开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
凯发app官方网站的技术支持 & 案例 faq 
接入指南 > 案例分析 > 标准产品 > 接口报错如何处理?
收藏
我的文档
设置
在调用接口 api 时经常会遇见报错,在报错时,接口 response 在 sub_code 和 sub_msg 中会显示相关报错,根据报错可以分为以下几类。
问题明确的报错
服务端接口报错描述和原因清晰,如 isv.insufficient-isv-permissions(isv 权限不足)、isv.self-invoke-forbidden(此用户不允许自调用)、acq.trade_not_exist(交易不存在)等,有具体的 sub_code 和 sub_msg。
或者是移动端提示的 ali 报错,如 app 支付,部分报错可通过客户端同步返回的 sub_code 和 sub_msg 进一步确认报错原因。
此类报错可以根据 查询相关请求参数,或者在 中输入错误原因进行查询处理。
sdk 抛出的异常
sdk 抛出的异常,不是由接口 response 显示的,此时报错需要明确接口到底有没有请求成功,判断业务是否完成。
如报错 sign check fail: check sign and data fail,该报错是接口请求成功(若是支付接口,用户可能已支付完成),但由于支付宝返回的响应参数验证失败导致(sdk 内封装有验签的相关信息),此时不能说用户一定没有支付交易。
如报错 私钥格式错误,请检查 rsa 私钥配置,charset = utf-8,该报错一般是由于密钥存在问题,接口没有请求成功,如果使用支付接口,用户肯定未支付成功。
处理方案
检查 sdk 的报错是由支付宝 sdk 导致的报错,还是自身 sdk 导致的报错。
支付宝 sdk 的报错建议在 中输入错误原因进行查询。
问题含糊不清的报错
接口报错描述没有具体显示,如 acq.system_error(系统繁忙/系统异常)、unknown-sub-code(未知的错误码)、biz_error(业务处理出错)、isp.unknow-error(系统繁忙)等,没有具体的报错原因等说明,此类报错较复杂,建议按照以下方式核实。
处理方案
检查是否并发导致的报错,建议减少接口调用次数,让接口显示真正的报错原因,根据报错原因进行处理。
检查网络、环境等是否存在问题,相同参数和信息,有的请求可以成功,有的不可以,并且该报错偶发现象,且概率极低。
检查是否参数问题导致的报错,建议先只传必传参数测试。建议按照文档提示的方式进行签名请求,避免请求方式错误。
检查是否账户风控导致,若是所有相关用户出现相同报错,可能是商家账户风控,若是只有个别用户出现报错,可能是用户账户风控,可让被风控的账户联系 4007585858 咨询。
注意事项
不要先急着重新调用接口,建议使用相关辅助接口判断业务是否处理完成,尤其是涉及资金的接口,否则可能存在重复支出,或者重复收款的现象,导致商家资损,或者用户投诉。
单笔转账、现金红包等直接转账到用户账户的接口,建议使用相关查询接口查询判断是否已经转账成功。
周期扣款、资金授权等直接扣用户账户资金的接口,建议使用支付接口的查询接口查询是否支付成功。
退款接口等涉及资金退款的接口,建议使用退款查询接口判断是否退款成功。
根据相关报错的处理方案,查询报错原因进行处理。
根据相关产品的辅助接口查询确认该笔交易处理状态后,进行下一步逻辑处理,避免重复扣款转账等。
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图