引言
在上一篇博客《淘东电商项目(53) -银联支付案例源码分析》,主要分析了下银联支付案例的源码,本文主要讲解银联支付同步与异步的原理,以及代码分析。
本文目录结构:
1.同步与异步
下面附上银联支付官方的流程图:
可以看到,银联支付成功后,有两种通知商户的方式,一种的“同步通知”,另外一种是“异步通知”,我用简短的话来描述两者间的区别:
- 同步通知:支付成功之后,会在一个页面重定向到支付结果页面(银联的后台会修改数据库,商户后台没有修改数据库)。
- 异步通知:支付成功后,银联后台会HTTP请求商户的后台地址,通知支付结果,这个地址是外网能访问的(银联的后台修改了数据库,商户后台没有修改数据库)。
同步和异步地址在acp_sdk.properties
文件里配置:
2.测试
测试之前,先使用natapp实现内网穿透,配置的外网地址为:http://uswbhg.natappfree.cc
配置acp_sdk.properties
文件:
下面开始测试:
先来测试同步,启动项目之后,点击支付,支付成功页面如下:
点击返回商户后,可以看到下面的url跳转回前台地址:
测试异步,在异步的代码里打断点,操作如同上步骤,不久就会进入断点了: