电商+支付双系统项目是一个综合性的项目,旨在建立一个完善的电商系统和独立的支付系统,以满足中国日益增长的电商交易需求并提供多样化、安全可靠的支付方式。随着中国电商行业的快速发展,电商平台需要具备高效、可靠的功能,而独立的支付系统则能够满足用户多样化的支付需求并保护用户的金融安全。这个双系统项目的目标是通过构建独立的电商和支付系统,实现数据隔离、风险控制和合规性。
从上图可知,基本上现在我们衣食住行都会用到支付,支付其实无时无刻都在我们身边,包括互联网公司都需要员工懂支付,所以就搞了一个支付系统让大家去理解一下支付系统是怎么运作的。
至于为什么要搞一个电商系统+支付系统双系统项目,是因为其实电商不仅仅局限于电商业务,你做任何项目都离不开下单和库存,下单和库存这两样东西是不可或缺的,其实电商只是一个载体,我做这个项目其实是想了解一下到底下单和库存是怎么样用代码实现的。
关于整个项目的流程如下:
(1)输入网址进入前端页面
(2)输入账号密码登录
(3)登录成功后随便找一个商品加入购物车
(4)点击“查看详情”,就进入到购物车页面
(5)接着点击“去结算”进入到“我的订单页面”
(6)然后点击“去结算”,然后就下单成功了
(7)然后支付宝或者微信支付
(8)扫码付钱
(9)支付成功后会自动跳转到“订单列表”页面
以上就是从下单到支付的完整过程。
总结一下这个过程:
下单:用户注册登录,查看商品列表,可以点击查看商品的详细信息,找到想购买的商品加⼊购物车, 添加商品成功查看详情,就跳转到购物车是界面了,接着去结算,这里要选收货地址,可以添加和删除收货地址,然后点击去结算订单,这时已经提交下单成功。
支付:下单成功但没支付,接着我们使用微信,点击使用微信,跳转到⼀个界面是微信的付款页面,手机扫码支付,支付完成页面自动跳转,跳转到订单列表页。这是我们刚刚下单的商品。付款状态变成了已付款,支付完成之后我们会收到支付结果的通知,通知是异步的。通知的消息由微信发起,对我们的支付系统发出异步请求,支付系统收到消息以后再经过消息队列MQ,把这个支付成功的消息告诉其他的业务更改订单状态为已支付。
那么,这个电商+支付双系统项目的核心技能是什么呢?
我们是用电脑访问的,那么实际输入域名访问,是到Nginx服务器,我们访问到的前端代码就放在Nginx服务器里。那如何访问到Java的后端接口呢?Nginx这里就做了一个反向代理的配置,这个配置可以将访问后端接口的请求转发到电商系统,电商系统就是我们写的Java程序,这是下单过程。下单完了点击“支付”,然后跳转到支付系统,支付系统也是我们写的Java程序,最后发起支付是要对接微信和支付宝的,这个对接由支付系统来完成的。那为什么要写两个Java应用呢?一个电商系统,一个支付系统,中间用使用跳转来发起支付?其实优势很明显,就是可以把支付和业务解耦开来。今天,电商系统需要支付,明天,活动系统需要支付,后天,游戏系统需要支付......你只需要跳转到支付系统就可以发起支付,在新增了业务系统的情况下,支付系统不需要动一行代码,这就是解耦的优势。
在支付完成后,我们会收到支付宝微信结果的通知,这个通知是异步的。通知的消息是由微信或者支付宝发起的,对我们的支付系统发起异步请求,支付系统收到消息后,经过消息队列MQ,把支付成功的消息告诉其他业务系统(这里是电商系统),使用消息队列我们就可以对流量进行更好地 把控,简单来说就是抗住高并发,大流量。