您当前的位置: 首页 > 

liaowenxiong

暂无认证

  • 1浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

HH SaaS电商系统的支付模块设计

liaowenxiong 发布时间:2020-04-14 16:44:55 ,浏览量:1

文章目录
  • 支付单
  • 支付单状态流转逻辑说明
  • 支付相关实体
  • 支付流水记录
    • 支付方式
    • 支付渠道
  • 支付成功后系统要执行的逻辑流程

支付单
  • 销售订单生成时,同步生成支付单,如果销售订单的应付金额由首付款和尾款组成,那么会生成两个支付单

  • 支付单与销售订单的“联合单号”或者“退款单ID”关联,而销售订单则通过此“联合单号”找到对应的支付单,联合订单可有可无(联合订单的字段:ID、联合单号、应付总金额、状态等)

  • 联合销售订单只能一起付款,所以只会生成一笔支付单。当然你也可以分别生成多笔对应的支付单,但是生成支付流水记录的时候就比较麻烦了,程序要先计算出其中一个支付流水记录的到账金额和手续费,就要先计算出该支付流水记录的支付金额在总支付金额中的占比,通过这个比率计算出大致的手续费,然后再计算到账金额(支付金额-手续费=到账金额),最后再计算另一个支付流水记录的手续费、到账金额。如果联合销售订单一起付款时又允许分期付款,那就更麻烦了。所以联合销售订单一起付款时不建议根据销售主单来分别生成对应的支付单。

支付单状态流转逻辑说明

支付流水记录状态:未支付、支付成功、支付失败、支付取消、支付中

支付单状态:未付款、已付款、部分付款

第三方支付系统反馈支付状态,如果成功,则将支付流水记录的状态转变为“支付成功”,失败则转变为“付款失败”。支付流水的状态转变成“付款成功”后,要判断全部关联的状态为“付款成功”的支付流水的支付金额总和是否等于支付单的应付金额,若相等,则将支付单的状态转变成“付款成功”,如果低于应付金额,则将状态转变成“部分付款”。直到支付单的状态转变成“付款成功”后再通知相关的销售单或者退款单改变相关的状态。

支付相关实体

在这里插入图片描述

支付流水记录

客户端调支付接口付款时,才生成一条支付流水记录,并将生成的支付流水号传给第三方支付接口。

注意:待付款订单每次发起付款时,都要生成新的支付流水记录,再携带流水号去调用第三方支付接口。

支付方式

消费者购物时可以选择线上的支付渠道完成付款也可以选择线下的支付渠道完成付款,线上的支付渠道通常有:微信支付、支付宝、快捷支付、钱包余额等,线下的支付渠道有:信用卡、借记卡、现金。

支付方式支付渠道线上支付微信支付、支付宝、钱包余额线下支付现金、POS刷卡、转账、微信支付、支付宝、银联闪付 支付渠道

在订单支付中,订单的“应付金额”是买家实际要支出的成本费用,这个费用已经抵扣了全部优惠金额,已经是固定不变的了,买家可以通过银行卡、现金、支付宝、微信支付、钱包余额等多种渠道来支付这笔费用,那么上述这些方式就是支付渠道。

  • 钱包余额 这是买家充值后产生的,买家为此承担了相应的成本,所以钱包余额属于支付方式,钱包余额只能1:1充值和提现。 钱包余额若不足,则选择其它支付方式,不可以选择钱包余额后,余款再选择其它支付方式,每次付款只能选择一种支付方式完成付款。

  • 购买的优惠券 买家花100元购买到150元的现金券,这种现金券只能在订单支付时使用,所以属于支付方式。

使用有偿的优惠券抵现购物,并不是一种付款行为,所以不能将其定义为一种支付方式,而是应该定义为一种优惠方式,详解参见《如何理解有偿的现金券/代金券在实际交易中的支付逻辑》。

支付成功后系统要执行的逻辑流程

支付成功后,要将支付单的状态转为“支付成功”,接着要将主订单的状态转为“等待商家发货”,这里就要判断几种情况: 1.如果主订单的状态为“订单取消”,则要发起退款、退币、退券的动作 2.如果主订单的状态为“等待商家发货”,则只要发起退款动作(重复支付的问题)

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0498s