订单合并付款之后,是否需要拆分支付流水?

1.表

  • 1.主订单表
  • 2.子订单表
  • 3.商品信息表
  • 4.支付流水表

2.订单

1.订单的基本设计

2.拆单

所谓拆单一般指的是拆订单,而不是拆支付流水。一个订单中包含多个商品时,需要把其中一个或者几个商品进行分组,生成子订单。即一次支付对应多个订单的情况。

拆单的形式:

  • 便于后期结算,按商家拆单。
  • 便于商品发货,按仓库拆单。

拆单后涉及到一个问题,在付款的时候,虽然拆分多个订单,但是可能涉及到合并付款的情况。

需要注意的地方,所有的合并付款,拆单都是基于订单,不涉及到付款模块。

拆单设计到的问题

  • 1.积分,优惠券,红包怎么分配到多个订单上
  • 2.对账的时候,按主订单对账

主订单,子订单,商品表之间的关系

  • 1.主订单

    在支付的时候,使用的订单号是主订单号。

    在对账的时候,按照主订单来对账。这样的话就不需要拆分支付流水了。

    一个支付流水对应一个主订单,支付流水和其他子订单没有关系。

  • 2.子订单

    记录该订单所有关联的商品信息。

    一个主订单可能有一个或者多个子订单。

  • 3.商品信息表

    记录商品信息,商品数量,商品价格等等。

3.支付流水

订单和支付实际上是两个业务,支付唯一影响订单的应该是订单的支付状态以及交易流水号等。

我们应该将订单和支付彻底分开,不要混在一起,即支付不需要考虑具体的订单的拆单。

4.退单

可能退子订单,也可能退整单。

用户选择要退款的商品,形成退款订单。

订单生成规则和正常购买订单的规则一样。根据商家判断是否形成多个子订单。

需要注意的点

退单的时候,多个子订单,涉及到了积分的使用。退的方式的要怎么处理。

5.流程

1.用户购买商品

同一个商家,形成一个主订单和一个子订单

N个商家,形成一个主订单和N个子订单

2.用户支付

修改主订单的支付状态

3.用户退款

生成退款订单

4.发货

根据子订单来发货

5.结算

根据订单状态和商家生成结算数据即可。

原文地址:https://www.cnblogs.com/snakejia/p/8511736.html

时间: 2024-08-10 10:51:10

订单合并付款之后,是否需要拆分支付流水?的相关文章

eBay如何给买家合并付款/发送账单VAT?

不时会有买家要求卖家给收据发票VAT,其实eBay后台是自带此功能的,可能部分卖家没使用过.PS:如果账号未设置VAT税率,则默认为0%. 一.给买家发据+VAT 步骤一:进入Selling Manager 步骤二:点击Print postages label or invoice,如下图: 步骤三:选择所需要的类型,如下图: 步骤四:点击 Continue: 很多时候,买家要求合并订单,合并运费发货,或者打折优惠等情况,我们可以使用Send Invoice此功能, 也是合并付款.修改订单运费价

T-SQL行合并成列与列拆分成行

本文出处:http://www.cnblogs.com/wy123/p/6910468.html 感觉最近sql也没少写,突然有一点生疏了,对于用的不是太频繁的一些操作,时间一久就容易生. 多行的某一个列合并成一个列 CREATE TABLE TestColumnMergeAndSplit ( Id int Identity(1,1), BusinessId int, BusinessValue varchar(20) ) GO INSERT INTO TestColumnMergeAndSpl

解决CGrIdCtrl合并单元格后继续拆分后的问题

DWORD dwMergeCellCount = vMergeCells.size(); for (int i = 0; i < dwMergeCellCount; i++){ m_HFlexGrid.SplitCells(vMergeCells.at(0));//为什么是0呢?假使两个元素,Remove第一个位置的元素后,CArray(CGridCtrl源码中使用的数组)只剩下一个,如果使用i(i等于1),则报错了,因为CArray目前只有一个元素.位置0 } vMergeCells.clea

解决微信支付出现OUT_TRADE_NO_USED:商户订单号重复

在这里和大家说一下微信APP支付时出现的一个问题! 在APP调起支付的时候出现了错误码:OUT_TRADE_NO_USED:商户订单号重复! 1 xxxxxxx312 xxxxxxx 因为我之前在后台已经将微信APP支付的服务端SDK集成进项目了,然后预支付成功后将签名返回给APP端,他们也调起来了,并成功收到异步回调通知! 但过了几天后就出现这个 "商户订单号重复" 这个问题! 后来经过调试,发现立即支付的单不会有这个问题,只有待付款的订单才会出现这个问题! 待付款的单指的是: 使用

SpringBoot+RabbitMQ+Redis实现商品秒杀

业务分析 一般而言,商品秒杀大概可以拆分成以下几步: 用户校验 校验是否多次抢单,保证每个商品每个用户只能秒杀一次 下单 订单信息进入消息队列,等待消费 减少库存 消费订单消息,减少商品库存,增加订单记录 付款 十五分钟内完成支付,修改支付状态 创建表 goods_info 商品库存表 列 说明 id 主键(uuid) goods_name 商品名称 goods_stock 商品库存 package com.jason.seckill.order.entity; /** * 商品库存 */ pu

走进京东金融:听过来人谈经验及技术干货

以「金融科技」定位的京东金融集团成立于2013年10月,逐步构建了供应链金融.消费金融.财富管理.众筹.证券.保险.支付.金融科技以及农村金融九大业务板块. 京东金融CEO陈生强表示,京东金融以数据为基础,以技术为手段,借力京东的场景和用户资源来做金融业务,这是自营金融业务.现在乃至未来,京东金融要做的是:遵从金融本质,以数据为基础,以技术为手段,为金融行业服务,从而帮助金融行业提升效率.降低成本.增加收入.这个定位就是金融科技. 京东金融这三年多,从无到有,从有到精,一路走来,背后定有许多精彩

分布式服务接口的幂等性如何设计

面试官心理分析 从这个问题开始,面试官就已经进入了实际的生产问题的面试了. 一个分布式系统中的某个接口,该如何保证幂等性?这个事儿其实是你做分布式系统的时候必须要考虑的一个生产环境的技术问题.啥意思呢? 你看,假如你有个服务提供一些接口供外部调用,这个服务部署在了 5 台机器上,接着有个接口就是付款接口.然后人家用户在前端上操作的时候,不知道为啥,总之就是一个订单不小心发起了两次支付请求,然后这俩请求分散在了这个服务部署的不同的机器上,好了,结果一个订单扣款扣两次. 或者是订单系统调用支付系统进

浅析微信支付:(余额提现)企业付款到微信用户零钱或银行卡账户

本文是[浅析微信支付]系列文章的第十二篇,主要讲解在商户存在的提现.商户付款到微信用户零钱或者银行卡需求. 浅析微信支付系列已经更新十二篇了哟-,没有看过的朋友们可以看一下哦. 浅析微信支付:支付验收示例和验收指引 浅析微信支付:如何使用沙箱环境测试 浅析微信支付:下载对账单和资金账单 浅析微信支付:申请退款.退款回调接口.查询退款 如果你是做电商或者某些有福利返利的系统,基本上会遇到诸如 余额提现 这类需求,主要就是平台向用户返利现金,积累到某一个门槛,可以领取到自己的余额账号.银行卡:或者是

C#开发微信支付之企业向用户付款

1.企业付款的介绍 所谓企业付款指的是,在功能开放后诸如保险行业的客户理赔.退保.商品退款.发放征集活动奖金.抽奖互动等操作都可以通过企业付款完成.而此前,微信支付只能提供客户向企业单向付款. 商户如果需要给用户付款,可以直接将钱打入用户的"微信零钱"中,微信支付将做零钱入账消息通知,零钱收支明细会展示相应记录.针对无零钱账户的历史客户端版本,资金将进入用户的红包账户,微信支付无消息通知用户,企业可选择自行触达用户. 通过认证的企业号可以开通微信支付功能.通过认证的企业号可以管理平台的