创建支付订单流程|学习笔记

简介: 快速学习创建支付订单流程

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)创建支付订单流程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12434


创建支付订单流程


第二块支付业务的实现,在这个业务当中要做两件事情,就是在用户支付之前首先创建一个支付订单,这个支付订单最终是要保存到 trade-pay 这张表中,表里有支付编号、订单编号、支付金额和是否已支付1否2是 四个字段。

image.png

这是在这个业务中主要要做的事情。

第一步在服务端接收到用户的支付请求后,首先判断当前支付订单关联的支付状态,判断订单是否已支付,如果支付了就可以直接给用户返回,如果没有支付要创建支付订单的对象,这个对象中设置它的状态为待支付,然后把它保存到数据库里边去。

这就是创建支付订单的基本流程,接下来就通过代码去实现这个流程。

首先先把接口放出来,准备工作先做好,创建一个接口叫 ipayservece,这里提供一个方法叫

Public createPayment,此时还需要传输一个参数,要保证 tradepay 表中订单编号和支付金额可以传递过来,支付编号可以后台自行生成,可以使用tradepay 数据模型进行传递,这里面就包含了订单编号和支付金额这两个属性,这是支付订单的接口的定义。

回到服务层,在 servicempl 包里边创建一个 servicempl 对这个接口进行实现,在此做一些配置,把准备工作做好。

代码如下:

@Component

@Service(interfaceClass=IPayServiceclass)

public class PayServiceImpl implements IPayservice{

doverride

public void createPayment(TradePay tradePay){

顺便把路口也创建出来,叫 paymentapplication,再加入注解。

代码如下:

@SpringBootApplication

QEnableDubboConfiguration

public class PayServiceApplication{

再提供一个方法:

代码如下:

public static void main(string[] args) {

SpringApplication.run(PayServiceApplication.class,args);

按照刚才的流程图分析,首先第一步是判断订单的支付状态,第二步是创建支付订单, 但支付订单已经传递过来了,直接用就行了,然后设置订单的状态为未支付,第三步是保存支付订单。

代码如下:

@Component

@Service(interfaceClass=IPayserviceclass

public class PayServiceImpl implements IPayService{

@Override

public void createPayment(TradePaytradePay){

//1.判断订单支付状态

//2.设置订单的状态未支付

//3.保存支付订单

}

这就是基本的一个流程,准备工作已经做好。

相关文章
|
XML Java 数据库连接
Mybatis的mapper.xml 映射文件没有提示?
1、先来看一下Mapper.xml的头文件 ——1-1、从标文件中可以看到标黄的是Mapper.xml的命名空间,不提示就是该网络的地址获取不到信息 或 没有配置目录的mybatis-3-mapper.dtd
Mybatis的mapper.xml 映射文件没有提示?
|
4月前
|
安全 Java 数据库
第16课:Spring Boot中集成 Shiro
第16课:Spring Boot中集成 Shiro
709 0
|
存储 弹性计算 数据处理
2核4G服务器价格多少钱1年,2024年阿里云2核4G云服务器价格来了!
2核4G服务器价格多少钱1年,2024年阿里云2核4G云服务器价格来了!在云计算的浪潮中,阿里云始终走在前列,为广大用户提供了稳定、高效的云服务。近日,阿里云再次放出大招,针对其2核4G通用算力型u1实例云服务器ECS推出了极具吸引力的优惠活动。这一举措无疑将在云服务器市场掀起新的波澜。
505 2
|
8月前
|
消息中间件 缓存 负载均衡
php怎么解决高并发的问题
在实际应用中,应根据具体需求和应用场景,选择合适的优化方案,并进行持续监控和优化,确保系统的高效稳定运行。
406 6
|
XML Java UED
使用 Spring Boot 实现重试和补偿功能:从理论到实践
【6月更文挑战第17天】在分布式系统中,服务之间的调用可能会因为网络故障、服务器负载等原因偶尔失败。为了提高系统的可靠性和稳定性,我们经常需要实现重试和补偿功能。
568 6
|
SQL 分布式计算 大数据
大数据开发SQL代码编码原则和规范
这段SQL编码原则强调代码的功能完整性、清晰度、执行效率及可读性,通过统一关键词大小写、缩进量以及禁止使用模糊操作如select *等手段提升代码质量。此外,SQL编码规范还详细规定了代码头部信息、字段与子句排列、运算符前后间隔、CASE语句编写、查询嵌套、表别名定义以及SQL注释的具体要求,确保代码的一致性和维护性。
454 0
|
Ubuntu 编译器 开发工具
香橙派5Pro+虚拟机Ubuntu18.04交叉编译+Opencv4.7
香橙派5Pro+虚拟机Ubuntu18.04交叉编译+Opencv4.7
|
机器学习/深度学习 人工智能 前端开发
未来趋势下的前端开发:可视化编程的崛起
随着人工智能和机器学习技术的不断发展,前端开发领域也在逐渐迎来变革。本文探讨了未来趋势下前端开发的发展方向,重点介绍了可视化编程在前端开发中的应用和优势,以及对传统前端开发方式的影响。
|
JavaScript 前端开发 Linux