微信委托代扣,扣款是否成功以支付通知的结果为准。我们现在的业务需要接口同步返回支付结果,流程上先执行扣款接口,再执行query接口,query查询到trade_state=SUCCESS即停止订单查询,将扣款结果返回给业务系统,业务系统以此结果作为判断依据控制后续流程。现在的问题是,query有时候执行2、3次,订单是已支付状态,有时候需要6、7次,时间长了,影响用户体验,这里的问题我们应该怎么解决。
另外,query基本上获取到支付结果会比银行回调通知快,我们现在遇到的这种情况存在于代扣,
如下图,360结尾的订单号,查询了5次才成功确认交易状态,343结尾的订单号,查询了3次确认交易状态
申请扣款接口,当商户请求接口成功后,微信侧会受理商户请求,受理成功后会根据规则进行扣款,包含扣款失败和扣款成功;所以申请扣款接口需要已扣款结果通知为准,或进行查询订单确认订单交易状态。