目前业务上在转账失败后,会重新发起一笔转账,并且商家批次单号都是新生成的。所以在重新打款之前需要确认上次的打款一定是失败的。
当前的判定失败规则是这样的:
1、请求微信的转账接口时返回失败,并且返回的code为APPID_MCHID_NOT_MATCH、PARAM_ERROR、INVALID_REQUEST、NO_AUTH、ACCOUNTERROR、QUOTA_EXCEED其中之一。(https://developers.weixin.qq.com/community/pay/doc/000a6422e50c0058b09efad325b008?page=7c参考的这篇文章Q7)
2、返回的code不在上述之中,会调用“通过商家批次单号查询批次单”接口查询批次的详情。
(1)如果接口httpcode返回404则判定该批次失败
(2)如果批次状态为CLOSE则判定失败
(3)如果明细状态为FAIL则判定失败
问题1:由于业务上不会用原批次号重试,这样判断转账为失败会不会错判?
问题2:文档上写有些错误码需要原单重试(比如403 NOT_ENOUGH资金不足),类似这种情况如果不用原单重试会有什么影响?
问题3:测试发现如果转账接口返回403(NOT_ENOUGH),使用“通过商家批次单号查询批次单”查询批次详情时是查不到的,会返回404,这种情况可以判定为失败吗?
不清楚