支付同步和异步接口,你还有疑惑么?

你们好,我是TT,互联网测试行业多年,遇到过的坑,走过的弯路,愿意与你们分享,分享本身的经验,少走弯路。首发于我的公众号【测试架构师】微信

原文以下: 架构


 

当一个支付请求被发送到支付渠道方,支付渠道会很快返回一个结果。可是这个结果,只是告诉你调用成功了,不是扣款成功,这叫同步调用。不少新手会拿这个结果看成支付成功了,那就会被坑死,结果就是支付成功率特别高,伴随着一堆没法解释的坏帐率,测试人员尤为要注意测试数据的篡改:金额,同步返回结果,订单号等。异步

同步请求参数里面会有一个回调地址,这个地址是支付渠道在扣款成功后调用的,这叫异步调用。通常同步接口仅检查参数是否正确,签名是否无误等。异步接口才告诉你扣款结果。通常异步接口有5秒之内的延迟。调用不成功会重试。有时候是这边成功了,但支付渠道侧没收到返回,因而会继续调。当天的支付到次日还在被异步调用也都是正常的。这也是开发人员须要特别注意的地方,不要当作重复支付。测试人员也要对重复回调进行测试,应只有一次有效。这还不是最坑的,通常支付渠道侧,只有支付成功了才通知你。要是支付失败了,压根儿都不告诉你。 另外一方面,如何老收不到异步结果呢?那就得查查了。同步结果不可靠,异步调用不可靠,那怎么肯定支付结果?最终的杀招就是查单了,反查,通常支付渠道侧都会提供反查接口,定时获取DB中待支付的订单调用支付渠道侧的反查接口,最终把支付渠道侧扣款成功的订单完成掉。测试

 


 

                                                               了解更多请关注微信公众号:测试架构师spa