电商+支付双系统项目------简介

电商+支付双系统项目是一个综合性的项目,旨在建立一个完善的电商系统和独立的支付系统,以满足中国日益增长的电商交易需求并提供多样化、安全可靠的支付方式。随着中国电商行业的快速发展,电商平台需要具备高效、可靠的功能,而独立的支付系统则能够满足用户多样化的支付需求并保护用户的金融安全。这个双系统项目的目标是通过构建独立的电商和支付系统,实现数据隔离、风险控制和合规性。

从上图可知,基本上现在我们衣食住行都会用到支付,支付其实无时无刻都在我们身边,包括互联网公司都需要员工懂支付,所以就搞了一个支付系统让大家去理解一下支付系统是怎么运作的。

至于为什么要搞一个电商系统+支付系统双系统项目,是因为其实电商不仅仅局限于电商业务,你做任何项目都离不开下单和库存,下单和库存这两样东西是不可或缺的,其实电商只是一个载体,我做这个项目其实是想了解一下到底下单和库存是怎么样用代码实现的。

关于整个项目的流程如下:

(1)输入网址进入前端页面

(2)输入账号密码登录

(3)登录成功后随便找一个商品加入购物车

(4)点击“查看详情”,就进入到购物车页面

(5)接着点击“去结算”进入到“我的订单页面”

(6)然后点击“去结算”,然后就下单成功了

(7)然后支付宝或者微信支付

(8)扫码付钱

(9)支付成功后会自动跳转到“订单列表”页面

以上就是从下单到支付的完整过程。

总结一下这个过程:

下单:用户注册登录,查看商品列表,可以点击查看商品的详细信息,找到想购买的商品加⼊购物车, 添加商品成功查看详情,就跳转到购物车是界面了,接着去结算,这里要选收货地址,可以添加和删除收货地址,然后点击去结算订单,这时已经提交下单成功。

支付:下单成功但没支付,接着我们使用微信,点击使用微信,跳转到⼀个界面是微信的付款页面,手机扫码支付,支付完成页面自动跳转,跳转到订单列表页。这是我们刚刚下单的商品。付款状态变成了已付款,支付完成之后我们会收到支付结果的通知,通知是异步的。通知的消息由微信发起,对我们的支付系统发出异步请求,支付系统收到消息以后再经过消息队列MQ,把这个支付成功的消息告诉其他的业务更改订单状态为已支付。

那么,这个电商+支付双系统项目的核心技能是什么呢?

我们是用电脑访问的,那么实际输入域名访问,是到Nginx服务器,我们访问到的前端代码就放在Nginx服务器里。那如何访问到Java的后端接口呢?Nginx这里就做了一个反向代理的配置,这个配置可以将访问后端接口的请求转发到电商系统,电商系统就是我们写的Java程序,这是下单过程。下单完了点击“支付”,然后跳转到支付系统,支付系统也是我们写的Java程序,最后发起支付是要对接微信和支付宝的,这个对接由支付系统来完成的。那为什么要写两个Java应用呢?一个电商系统,一个支付系统,中间用使用跳转来发起支付?其实优势很明显,就是可以把支付和业务解耦开来。今天,电商系统需要支付,明天,活动系统需要支付,后天,游戏系统需要支付......你只需要跳转到支付系统就可以发起支付,在新增了业务系统的情况下,支付系统不需要动一行代码,这就是解耦的优势。

在支付完成后,我们会收到支付宝微信结果的通知,这个通知是异步的。通知的消息是由微信或者支付宝发起的,对我们的支付系统发起异步请求,支付系统收到消息后,经过消息队列MQ,把支付成功的消息告诉其他业务系统(这里是电商系统),使用消息队列我们就可以对流量进行更好地 把控,简单来说就是抗住高并发,大流量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/389283.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中国比特币矿工的新根据地:埃塞俄比亚

原文标题:《Chinese Bitcoin Miners Find a New Crypto Haven in Ethiopia》 撰文:David Pan、Fasika Tadesse,彭博社 编译:Carl,Techub News 中国比特币矿工的新根据地:埃塞俄比亚 去年春天&#xff0c…

蓝桥杯电子类单片机提升三——NE555

目录 单片机资源数据包_2023 一、NE555和定时器工作模式 1.NE555的介绍 2.定时器的计数模式 二、NE555频率读取代码的实现 1.定时器0初始化 2.通过读取TH0和TL0来读取频率 3.通过中断读取频率 三、完整代码演示 通过读取TH0和TL0来读取频率 main.c 通过中断读取频…

领导力提升,才是高绩效的关键

作为企业的CEO或团队管理者,在日常的团队管理工作中无论是领导力还是执行力,都是非常重要的。在领导力的提升方面,我们可以通过一整套方案来进行,包括如何设定目标,动机刺激、任务拆解、鼓励参与、责任承担、建立制度、…

NLP_ChatGPT的RLHF实战

文章目录 介绍小结 介绍 ChatGPT 之所以成为ChatGPT,基于人类反馈的强化学习是其中重要的一环。而ChatGPT 的训练工程称得上是复杂而又神秘的,迄今为止,OpenAl也没有开源它的训练及调优的细节。 从 OpenAl已经公开的一部分信息推知&#xff…

STM32——OLED菜单(二级菜单)

文章目录 一.补充二. 二级菜单代码 简介:首先在我的51 I2C里面有OLED详细讲解,本期代码从51OLED基础上移植过来的,可以先看完那篇文章,在看这个,然后按键我是用的定时器扫描不会堵塞程序,可以翻开我的文章有单独的定时…

大模型专题:2023爱分析·大模型厂商全景报告

今天分享的是大模型系列深度研究报告:《大模型专题:2023爱分析大模型厂商全景报告》。 (报告出品方:爱分析) 报告共计:80页 研究范围定义 大模型是指通过在海量数据上依托强大算力资源进行训练后能完成…

java8-使用流-2

筛选各异的元素 流还支持一个叫作aistinct的方法&#xff0c;它会返回一个元素各异(根据流所生成元素的hashcode和eguals方法实现)的流。例如&#xff0c;以下代码会筛选出列表中所有的偶数&#xff0c;并确保没有重复。图5-2直观地显示了这个过程。 List<Integer>number…

Redis面试题整理(持续更新)

1. 缓存穿透&#xff1f; 缓存穿透是指查询一个一定不存在的数据&#xff0c;如果从存储层查不到数据则不写入缓存&#xff0c;这将导致这个不存在的数据每次请求都要到 DB 去查询&#xff0c;可能导致DB挂掉&#xff0c;这种情况大概率是遭到了攻击。 解决方案&#xff1a; …

【C++】:位图、布隆过滤器、哈希分割

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下位图、布隆过滤器、哈希分割&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精…

【JAVA-Day90】Java如何主动发起Http、Https请求?

Java如何主动发起Http、Https请求&#xff1f; Java如何主动发起Http、Https请求&#xff1f;摘要引言一、什么是Http和Https二、如何发起Http请求三、如何发起Https请求四、Http请求的状态码和数据解析五、Http请求面试题六、总结参考资料未来展望 博主 默语带您 Go to New Wo…

公需课考试怎么搜题找答案?推荐你使用这5个公众号和工具 #知识分享#其他#知识分享

大学生必备&#xff0c;这条笔记大数据一定定要推给刚上大学的学弟学妹&#xff01;&#xff01; 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试…

Android 回退页面不是上个页面

问题 Android 回退页面不是上个页面 详细问题 笔者进行Android 开发&#xff0c;点击返回上一层&#xff0c;显示页面不是上个页面&#xff0c;而是之前的某个页面 页面跳转代码 private void navigateToActivity(Context context, Class<?> targetActivityClass) {I…

[python] 罗技动态链接驱动库DLL 控制 键鼠

[python] 罗技动态链接驱动库DLL 控制 键鼠 最近在玩搬砖游戏晶核, 每天有很多重复繁琐的"打卡"操作, 得知隔壁御三家游戏就有大佬做了自动收割的辅助工具,我就想模仿写一个.不过大佬们写的开源工具厉害得多,加了神经网络自动识别,实现寻路和点击功能.我目前最多就是…

视觉slam十四讲学习笔记(六)视觉里程计 1

本文关注基于特征点方式的视觉里程计算法。将介绍什么是特征点&#xff0c;如何提取和匹配特征点&#xff0c;以及如何根据配对的特征点估计相机运动。 目录 前言 一、特征点法 1 特征点 2 ORB 特征 FAST 关键点 BRIEF 描述子 3 特征匹配 二、实践&#xff1a;特征提取…

Vue核心基础1:数据代理

1 回顾Object.defineProperty方法 let str hello const person {name: 张三,age: 18 } Object.defineProperty(person, sex, {// value: 男,// enumerable: true, // 控制属性是否可以枚举&#xff0c;默认值是false// writable: true, // 控制属性是否可以被修改&#xff0…

使用 Mermaid 创建流程图,序列图,甘特图

使用 Mermaid 创建流程图和图表 Mermaid 是一个流行的 JavaScript 库&#xff0c;用于创建流程图、序列图、甘特图和其他各种图表。它的简洁语法使得创建图表变得非常简单&#xff0c;无需复杂的绘图工具或专业的编程技能。在本文中&#xff0c;我们将讲解如何使用 Mermaid 来创…

《合成孔径雷达成像算法与实现》Figure6.12

clc clear close all参数设置 距离向参数设置 R_eta_c 20e3; % 景中心斜距 Tr 2.5e-6; % 发射脉冲时宽 Kr 20e12; % 距离向调频率 alpha_os_r 1.7; % 距离过采样率 Nrg 320; % 距离线采样数 距离向…

自定义类型详解 结构体,位段,枚举,联合

目录 结构体 1.不完全声明 2.结构体的自引用 3.定义与初始化 4.结构体内存对齐与结构体类型的大小 结构体嵌套问题 位段 1.什么是位段&#xff1f; 2.位段的内存分配 枚举 1.枚举类型的定义 2.枚举的优点 联合&#xff08;共同体&#xff09; 1.联合体类型的声明以…

第4讲引入JWT前后端交互

引入JWT前后端交互 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准&#xff08;(RFC 7519)&#xff1b; JWT就是一段字符串&#xff0c;用来进行用户身份认证的凭证&#xff0c;该字符串分成三段【头部、载荷、签证】 后端接口测试&…

七天爆肝flink笔记

一.flink整体介绍及wordcount案例代码 1.1整体介绍 从上到下包含有界无界流 支持状态 特点 与spark对比 应用场景 架构分层 1.2示例代码 了解了后就整个demo吧 数据源准备 这里直接用的文本文件 gradle中的主要配置 group com.example version 0.0.1-SNAPSHOTjava {sour…