支付是同步还是异步

我们一直认为支付是异步的,从未有过其它可能。最近却被收银员实力打脸。线下门店支付时,平台告诉收银员支付中,客人拿走商品后最终却支付失败,谁来买单?谁背锅?如何面对这样的声色俱厉?

异步支付

异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位。
异步的另外一种含义是计算机多线程的异步处理。与同步处理相对,异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。
以上是百度百科的概念。所以我们的支付服务一定是异步处理接收、查询支付最终结果,否则所有请求都处于等待支付状态,服务器资源不够,带宽不够,无法支撑大并发。
但是我们仍然无法如此回怒收银员。所以我们要告诉她我们是“
同步支付”(对,就是这么没节操)。

同步支付

显然未支付成功顾客不能拿走商品,不管是线上还是线下。
线上支付成功后,商品才会被邮寄,虚拟物品也才会发送;线下更是需要确保支付成功后才能拿走商品。

结论

支付服务程序异步,支付场景同步
为什么线上线下都是同步支付却会有严重的用户体验差异呢,是因为线上支付中,不会阻断用户,用户可以干些别的事情,不需要傻等。而线下结账完,用户没办法停留下来刷刷新闻,刷朋友圈,而是需要立即离开。
也就是支付程序是异步通知的,针对线下同步场景,需要由轮询或通知实现等待同步