美文网首页
支付同步和异步处理关系

支付同步和异步处理关系

作者: 萝卜豆豆 | 来源:发表于2020-02-23 18:28 被阅读0次

Java中交互方式分为同步和异步两种:

同步:指发出一个请求后,需要等待返回,才能进行下一个请求触发,有个等待的过程

异步:指发出一个请求后,不需要等待返回,随时可以触发下一个请求,不需要等待

区别:一个需要等待,一个不需要等待,在部分情况下、有的项目开发中都会优先选择不需要等待的异步交互方式。

哪些情况建议使用同步交互呢?

比如银行的转账系统,对数据库的保存操作等等,都会使用同步交互操作,其余情况都优先使用异步交互。

换种方式也可以这样理解:

1.用户(买家)支付完成后,电商平台需要实时的给用户一个通知,如支付已经处理等待订单确认。

2.电商平台,这块就需要考虑系统技术方面的各个环节,考虑应对复杂多变的并发用户量、业务、流量、网络环境等因素,我们需要把可以异步化的任务进行分离,算是保障系统可造性、可用性的一个重要的点。

3.电商网站每秒钟承接1w、5w、10W交易量甚至更高的时候,实时处理这些请求挑战很大,但如果把这些请求分离业务状态实现异步化,放入消息系统、异步准实时环境,进而整体网站的复杂度降低,这就是同步和异步通知存在的意义。

4.第三方支付公司接入文档上都会有以异步通知为准的约束。

5.其实除了通知这块,还有一块会被忽略,就是支付查询类接口,这一块的作用如果用好了,对系统业务层会省很多人力

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

    同步请求参数里面会有一个回调地址,这个地址是支付渠道在扣款成功后调用的,这叫异步调用

一般同步接口仅检查参数是否正确,签名是否无误等。

异步接口才告诉你扣款结果(成功或者失败)。一般异步接口有5秒以内的延迟。调用不成功会重试。有时候是这边成功了,但支付渠道侧没收到返回,于是会继续调。当天的支付到第二天还在被异步调用也都是正常的。这也是开发人员需要特别注意的地方,不要当做重复支付。测试人员也要对重复回调进行测试,应只有一次有效。这还不是最坑的,一般支付渠道侧,只有支付成功了才通知你。要是支付失败了,压根儿都不告诉你。 另一方面,如何老收不到异步结果呢?那就得查查了。同步结果不可靠,异步调用不可靠,那怎么确定支付结果?最终的杀招就是查单了,反查,一般支付渠道侧都会提供反查接口,定时获取DB中待支付的订单调用支付渠道侧的反查接口,最终把支付渠道侧扣款成功的订单完成掉。

交互时候测试人员应该注意:

1,校验同步接口参数是否正确,签名是否有误

2,对重复回调进行测试,应当只有一次有效

3,如果发送消息,接收消息方失败,但是未返回给传送消息者失败的消息,比如支付失败,那结果总收不到异步结果,

解决方法:根据提供的反查接口进行反查

相关文章

  • 支付同步和异步处理关系

    Java中交互方式分为同步和异步两种:同步:指发出一个请求后,需要等待返回,才能进行下一个请求触发,有个等待的过程...

  • 同步或异步异常处理

    同步或异步异常处理 同步读取异常处理 异步读取文件异常处理

  • 分布式之异步处理

    同步和异步处理 处理一般可以分为同步和异步两种。同步的处理就像我们生活中打电话,打电话的双方都需要做即时的响应处理...

  • 同步处理和异步处理

    同步和异步是开发技术中的两个概念,计算机通过解析和运行程序完成相应的操作。在程序执行过程中会涉及同时处理多个任务或...

  • synchronous && asychrono

    synchronous 同步处理 (只有一个线程) asynchronous 异步处理 (另开一个线程) 同步和异...

  • GCD 相关函数

    串行同步 串行异步 并行同步 并行异步 主队列同步 会死锁 主队列异步 异步处理耗时,回主线程刷新UI 栅栏函数 ...

  • NIO

    1、同步异步 和 阻塞非阻塞 关系 同步异步与消息的通知机制相关同步调用会一直等着消息结果,直到返回才继续执行异步...

  • OkHttp源码解析 -- 同步异步处理

    前言: 使用OkHttp,执行网络请求时会有异步还是同步处理。先说下异步和同步的区别,同步并不是指在UI线程中执行...

  • 异步Servlet 特性

    异步Servlet 本篇主要讲解 如何使用 异步Servlet的处理请求,并且演示 同步Servlet和异步Ser...

  • 异步:promise、then、async、await、try、

    同步和异步 同步和异步是一种消息通知机制 同步阻塞: A调用B,B处理获得结果,才返回给A。A在这个过程中,一直等...

网友评论

      本文标题:支付同步和异步处理关系

      本文链接:https://www.haomeiwen.com/subject/xefsqhtx.html