从0到1构建电商平台之订单系统(2):支付订单
上一篇笔者为大家介绍了订单系统中关于提交订单操作相关的问题:《从0到1构建电商平台之订单系统(1):提交订单》,提交订单之后,接下来要做的是“支付订单”。
电商平台主要会涉及商家系统、商品系统、订单系统、售后系统、会员系统、营销系统、财务系统、数据系统等。我会把订单系统的文章拆分成三篇,本篇是第二篇。
虽然每个公司的具体需求与业务场景不一样,我们平台的功能需求可能其他平台不尽相同,但整个订单的产生到结束的,主要有以下3个流程:
上一篇文章我们是写的是提交订单这一步操作,当用户把订单提交后此时后台会有两步操作:
1)拆单
由购物车进入提交订单页面时可能有多商家多商品的情况,一旦提交了订单就会涉及到拆单(不管是否成功支付),一般来说最简单的是按商家拆,拆完后分别流转至相应的商家后台,用户在客户端的订单列表也会看到多个子订单;如果业务场景要求的话可以再按仓库等维度拆,这里不做展开;
2)生成账单
生成账单的目的是为了记录该笔母订单的金额,如商品金额、抵扣总金额、各商品分别抵扣金额、用户需支付金额等,用户将要支付的是母订单的账单,当该笔账单已完成,则各子订单状态跳转为待发货;
注意,如果用户在支付页面退出,此时账单也会随着商家拆分成各子账单,因为用户可以在订单列表里分别对拆分后的子订单进行支付
下面是支付页面的字段和各项判断流程:
一、支付方式
1. 支付宝/微信等三方支付
由开发同学对接好三方支付平台的接口即可,这里不做展开。
2. 余额支付
用户在平台会通过一定的方式获取余额(非充值,也非用来抵扣的金币,是一种支付方式),此时有2种情况:
1)金币完全抵扣
当金币能完全抵扣时,在支付页面可以只显示余额支付;因为此时支付金额虽然为0,但需要选择余额支付并输入支付密码,目的是为了防止被他人盗用(当用户选择支付宝/微信支付时需输入支付密码,相当于已经起到了防止作用)
2)金币非完全抵扣/未抵扣
此时用户只能选择一种支付方式,但如果余额小于支付金额只能选择支付宝/微信。
二、 判断流程与思考
1. 锁定库存:两种方案
1)提交订单即锁库存
这样做的优点是用户的体验较好,我提交了订单这个商品就是我的了,我可以慢慢付款;
缺点是可能会导致真正有购买需求的用户无法购买,比如甲用户先提交订单锁定了库存他还在考虑中,不一定会买,但是乙用户想立即购买确发现没货了(也不排除有人恶意下单锁定库存)
所以待付款订单一般都会有剩余支付时间,比如30分钟,到了时间自动取消订单并释放库存,或者在添加商品的sku时设置单人限购数量,这样一个账号只能在某一段时间内购买n次,同时技术上也可以做限制,同一ip只能购买n次
2)支付成功才锁库存
这样做的优点是可以筛掉恶意下单的情况;缺点是用户的体验会差一些,可能付款慢一点就会失去购买的机会。
我们平台采用的是a方案,可以根据不同的业务场景选择不同的方案。
2. 是否能下架商品?
进入支付页面说明该订单已生成,且处于待付款状态,此时需要注意的是此时商家是否能下架商品。
1)能
可能会导致用户在已经支付订单时提示商品已下架,因为此时订单已经生成,处于待付款状态;只有让系统自动取消该订单,但对用户是比较不友好的
2)不能
对商家是不友好的,因为判断条件为订单处于待付款,此时用户可能不付款退出,订单也会处于待付款;
衍生的情况就比较麻烦了,哪怕待付款订单自动取消的时间为30分钟,也会存在不断有用户下单,商家就可能一直不能下架商品,后续的问题可能会更大,但如果此时限制其他用户不能下单,那么就在技术与商家的操作上都会比较复杂(具体的操作这里不做展开)。
我暂时没有想更好的解决方案,采用的第一种方案。
3. 验证sku信息是否更改
当订单处于待付款时商家修改了sku(下架商品 - 编辑商品 - 工作人员审核上架),该订单同样不能付款,因为和此时的商品信息甚至金额可能和之前发生了改变,与之衍生的可能就是商家与用户的纠纷。
注意: 如果采用的是商家不能下架商品的方案,则这一点就不用验证(所以2、3两点没在流程图上体现出来)。
4. 是否支付成功
支付成功即生成待发货订单,立即锁定库存。
支付失败则还是为待付款订单,然后开始倒计时;一般平台商品库存充足倒计时可长一点,对用户会友好一点,库存不怎么充足或者平台上入驻的小商家居多,平台无法控制商家的库存或者下架之类的操作;
如果也考虑到时间给用户带来的紧迫感的话,时间可以短一些;时间一到订单状态就应变成已关闭状态,用户无法支付,同时释放库存。
订单成功支付后就需要商家处理订单了,同时用户也可以进行一些操作,下一篇“处理订单”。
本文由 @张璨 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: