问题场景:
最近在做微信取现到余额的操作.
做的过程中,发现如下在最开始声明了 ***SYSTEMERROR”时,请不要更换商户订单号,一定要使用原商户订单号重试.***
然后在下面api返回错误码中,进行红色标注
* NOTENOUGH 余额不足 ;
* NAME_MISMATCH 姓名校验出错
* SIGN_ERROR 签名错误
* FREQ_LIMIT 超过频率限制,请稍后再试
* MONEY_LIMIT 已经达到今日付款总额上限/已达到付款给此用户额度上限
**如果要继续付款必须使用原商户订单号重试:**
个人探索:
我不清为什么微信要这么设计,为何都明确确定失败的单子还需要拿原单号进行重试.后查询微信开发平台发现几个问答.
a. 这个问答说明了一个问题,在账户重新认证,交易金额修改的情况下可以修改单号.
b.也就是继续使用原商户单号重试使用场景,是在原单号可以正常交易的情况下,才重试.若不能顺利完成.则可以不重试
最终结论:
看了若干个问答后,我决定这么做业务
1.很明确失败,且无外界手动干预的情况下,则不重试(如签名错误).有重试成功可能性的则进行若干次重试(如调用超限).
2.为保险起见对调用失败的订单,调用企业付款订单查询接口.查询订单状态为,只有状态为(PROCESSING:处理中)才保留重试的机制.另外两种状态SUCCESS,FAILED;基于自己业务做处理即可.
我现在的问题是我做出的结论正确吗?会不会有纰漏产生损失
支付、卡券相关的问题请移步至微信支付专区https://developers.weixin.qq.com/community/pay提问,我们会有对应同学来处理,此贴先隐藏,请重新发帖咨询。