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

2024-02-22 07:36

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

订单

  • 订单相关属性:

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

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

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

  • 状态机:

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

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

  • 数据存储:

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

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

添加订单(下单)

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

订单超时

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

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

取消订单

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

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

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

支付

  • 支付相关的属性:

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

  • 安全:

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

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

  • 产品需求:

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

  • 第三方支付:

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

  • 幂等性:

支付回调,需要做幂等。

  • 事务性:

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

支付单:

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

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

支付回调:

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

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

主动查询支付状态:

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

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

交付

  • 产品需求:

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

  • 幂等性

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

  • 部分交付:

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

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



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

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

SpringBoot基于沙箱环境实现支付宝支付教程

《SpringBoot基于沙箱环境实现支付宝支付教程》本文介绍了如何使用支付宝沙箱环境进行开发测试,包括沙箱环境的介绍、准备步骤、在SpringBoot项目中结合支付宝沙箱进行支付接口的实现与测试... 目录一、支付宝沙箱环境介绍二、沙箱环境准备2.1 注册入驻支付宝开放平台2.2 配置沙箱环境2.3 沙箱

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (