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


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

    同步请求参数里会有个回调地址,这个地址是支付渠道在扣款成功后调用的,这叫异步调用。一般同步接口仅检查参数是否正常,签名是否有误等。异步接口才告诉你支付结果。一般异步接口有5s以内的延迟,调用不成功会重试。有时候是这边成功了,但支付渠道则没收到返回,于是会继续调用。当天的支付第二天还在被异步调用的也是正常的。这也是开发人员需要注意的地方,不要当做重复支付。测试人员也需要对重复回调进行测试,应该只有一次有效。这还不是最坑的,一般支付渠道侧,只有支付成功了才告诉你,要是支付失败了,压根不通知你。

    另外一方面,要是老收不到支付结果呢,这就需要查查后台日志。同步结果不可靠,异步调用不可靠,那怎么确定支付结果?最终的杀单是查单了,反查,一般支付渠道侧都会提供反查接口,定时获取DB中的待支付的订单调用支付渠道侧的反查接口,最终把支付渠道侧扣款成功的订单完成掉。

  • 相关阅读:
    搭建springCloud网关zuul
    springboot添加https
    SpringBoot上传文件,经过spingCloud-Zuul,中文文件名乱码解决办法
    springboot mongodb jpa常用方法整理
    springboot拦截中自动注入的组件为null问题解决方法
    springboot JPA mysql
    转载Spring Data JPA 指南——整理自官方参考文档
    springboot带有进度条的上传
    HTTP请求示例
    http的N种请求
  • 原文地址:https://www.cnblogs.com/ccy1106/p/6730865.html
Copyright © 2020-2023  润新知