首先提交完订单以后请求支付服务接口发起订单服务的接口调用,请求订单信息返回给前端,跳转到支付界面,我就以支付宝为例。
第一步:点击支付宝图标发起支付,请求支付宝接口,创建支付,在创建支付的接口中主要做三个校验。(校验订单是否为未支付和已超时)(2)创建支付记录集到数据库中,支付状态为未支付。(3)请求阿里支付界面
请求阿里支付我做了一个动态工厂,然后把工厂对象注入到容器中,通过阿里服务对工厂对象进行调用。
第二步:在支付宝支付界面输入用户名和密码,然后输入支付密码,也可以扫码支付。
第三步:在支付宝完成处理交易之后执行同步回调和异步回调。
(1)同步回调:同步回调就是用户成功之后有浏览器发起请求,跳转到登录成功界面。
(2)异步回调:异步回调就是用户支付成功之后由阿里服务器发起,向我们系统的支付服务发起请求,通知支付成功,然后支付服务完成后续的订单的修改订单状态、修改支付记录状态、扣减库存的操作。
tips:在异步回调时,为了防止支付宝重新调用支付异步回调,我通过redis中的一个String数据结构,通过setNX存储异步回调逻辑,用支付宝通知Id作为唯一的key进行存储,value随意。
我存的是订单的ID
1万+

被折叠的 条评论
为什么被折叠?



