普及贴:你在电子商务网站用支付宝付款时发生了什么?
欢迎交流:互联网产品开发解决方案——零云(CoreThink&OpenCMF)http://www.corethink.cn
OpenCMF网页第三方支付架构:
1、用户点击购买按钮提交支付金额和支付方式至后台。
2、后台处理程序(我们称之为OC)接受到金额的同时生成一个唯一订单号(一般叫做out_trade_no),此时再加一些额外的订单信息组成一个订单信息集合,我们称之为P1
3、OC拿着用户提交的支付方式(比如alipay表示支付宝)去向支付插件讨要付款账户的配置信息(也就是管理员在后台-插件管理-支付插件里填写的支付宝账号key啥的),我们称这个配置信息为P2。
4、得到支付宝配置信息后,OC开始拿着P1和P2传给支付插件的总网关,网管一看支付总开关开着,OK识别一下P2里的数据后调用ThinkPay目录下具体的支付驱动(目前有支付宝、微信、银联、快钱等驱动),相应的驱动则会解析P1信息然后打开支付页面。
5、用户输密码支付,这里后边由银行跟支付宝结算。
6、用户支付还没结束呢,OC还不知道用户有没有真正支付呢,这个怎么办?支付宝等第三方平台一旦完成一笔支付订单,它就会每隔一段时间往你指定的网址发送数据,数据内容就是对应订单的信息,这个网址其实在P1数据里你已经提前告诉支付宝了。
7、OC接受到支付宝服务器发来的数据,跟自己充值订单数据库一核对,发现数据库里确实有一条匹配的纪录,于是OC把这条记录标记为已支付。同时OC再做一些回调的事情,比如充值就在此时把用户的余额给加上,然后给用户发个消息邮件等等。
8、到这里还没完,因为支付宝它还不知道你已经收到消息了,所以根据事先约定的,OC还要回复支付宝一个SUCCESS告诉他你的来信我收到了,别再给我发信息了,不想看了!要不然他一直骚扰你大概24小时后放弃。