更新时间:2024-12-25 14:02:50收藏我的文档设置返回文档在调用接口 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 咨询。 注意事项●不要先急着重新调用接口,建议使用相关辅助接口判断业务是否处理完成,尤其是涉及资金的接口,否则可能存在重复支出,或者重复收款的现象,导致商家资损,或者用户投诉。●单笔转账、现金红包等直接转账到用户账户的接口,建议使用相关查询接口查询判断是否已经转账成功。●周期扣款、资金授权等直接扣用户账户资金的接口,建议使用支付接口的查询接口查询是否支付成功。●退款接口等涉及资金退款的接口,建议使用退款查询接口判断是否退款成功。●根据相关报错的处理方案,查询报错原因进行处理。●根据相关产品的辅助接口查询确认该笔交易处理状态后,进行下一步逻辑处理,避免重复扣款转账等。