电商业务知识总结(二)--订单和支付

2024-02-22 07:36

本文主要是介绍电商业务知识总结(二)--订单和支付,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

订单

  • 订单相关属性:

订单号、子订单号、订单类型、订单状态、用户id、用户名称、单价、数量、总价、支付方式、支付时间。

订单号和订单状态、支付方式,是比较重要的属性。

一个订单,可能会有多个子订单。

  • 状态机:

订单状态:待支付、已支付、超时、取消、完成、关闭。

如果需要发货和收货,可以增加一个 已发货、已收货 的状态。或者是确认收货后,订单状态变为已完成。

  • 数据存储:

订单一定就要考虑数据量,是否分库分表。

最好设置冷库和热库,时间比较久远的订单,可以归档,放到冷库,避免数据越积越多,影响查询和更新等业务的响应速度。

添加订单(下单)

下单可以和添加支付单 合成一个按钮,用户点击后,生成支付要素,显示支付金额,再输入密码确认。

订单超时

下单后,如果不支付,超过一定时间后,订单状态会变成 订单超时。

订单超时,需要设置超时时间,比如15分钟,超时后订单变为超时状态,一般会用延时队列实现。

取消订单

取消订单,如果是调用第三方的下单接口,一般在取消订单时,也需要调用第三方的取消订单接口。

取消订单,或者退款后,订单变为关闭状态。

产品需要明确,取消订单,是否自动退款。

支付

  • 支付相关的属性:

订单号,用户id,支付流水号,支付状态,支付方式,支付金额,支付回调时间。

  • 安全:

支付相关的,要注意安全性。

做好风控,针对账号和ip进行记录和监控,发现有异常行为的账号或者ip,及时做名单限制,避免黑产。

  • 产品需求:

产品需要明确,支付成功后能否取消订单。

  • 第三方支付:

微信支付、支付宝、云闪付等

  • 幂等性:

支付回调,需要做幂等。

  • 事务性:

支付成功,收到回调通知,修改订单状态,执行业务逻辑,需要保证事务性,要么全部成功,要么全部失败。

支付单:

调用第三方添加支付单,返回支付要素,用户输入密码后,再根据支付回调,更新订单状态。

同一订单,生成支付单后不支付,重新支付时,一般需要取消旧的支付单。

支付回调:

调用第三方的支付,添加支付单后,会返回支付要素,用户输入密码确认,之后系统会收到第三方系统的支付回调。

根据是否支付成功,执行业务逻辑。

主动查询支付状态:

不能依赖第三方系统的回调,第三方系统有可能会出现不回调的情况,需要主动查询。

可以在客户端调用后端查询支付状态的接口,每隔几秒轮询一次,一般情况下,重试三次到五次即可。

交付

  • 产品需求:

业务的交付,需要指定是立即交付,还是收货后才交付。

  • 幂等性

交付要做好幂等处理,不要重复交付。

  • 部分交付:

如果业务允许 订单分多次交付,每次交付一部分,那可以根据子订单来划分部分交付。

这篇关于电商业务知识总结(二)--订单和支付的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/734554

相关文章

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa