交易系统开发小结

 
一、前言
 
阴差阳错干了接近两年交易业务系统的研发,从典型互联网公司来到电商类公司有比较多的不适。首先电商业务更重视稳定性、准确性,对高并发的要求并不是很高,这样从技术选型层面也会求稳,不会选择最新的技术,也不会选择有维护风险的技术。其次交易涉及到资金,交易系统或多或少会产生资损,这就要求代码的测试必须充分,场景尽量考虑周全,所以交易一般选择白盒测试;最后交易系统随着功能、场景覆盖越来越完善,任何大规模的重构由于系统稳定性风险无法给出定量评估及极大的测试回归工作量,使得重构不可能,最好的选择是重写新系统,然后旧系统的流量逐步灰度迁移到新系统。
交易系统的目的是保证的最终一致性。
 
二、交易的生命周期
 
  • 用户角度
 
下单 -> 支付 -> 待收货 -> 确认收货 -> 售后(退/换)
 
  • 技术角度
正向交易:下单 -> 平台担保账户收款 -> 商家发货 -> 用户确认收货 -> 担保账户打款给商家 -> 完结
逆向交易:退货单 -> 买家发货 -> 卖家确认收货 -> 从卖家账户直接扣款给用户(退款不一定是100%返回)
改(换)货单 -> 是否有差价 -> [担保账户收差价] -> 卖家发货 -> 买家确认收货 -> 差价大于0 -> [担保账户打款给卖家] -> 完结
-> 差价小于0 -> [卖家账户扣款至买家]
改退组合
 
  • 合同角度
 
签约 -> 履约 -> 毁约 / 变约
 
 
三、交易的领域视角
 
电商四大系统:商品、下单、正向履约、逆向履约
 
// TODO
 
四、交易开发的技术流程
 
  • 面向交易生命阶段的开发
 
// TODO
 
  • 面向交易状态流转的开发
// TODO
 
五、支付方式
 
先付款后出货
先出货后付款
后付款又可分为买家主动付款和平台代扣(用户在电商平台绑定银卡自动扣款)
 
六、账户方式
 
自有账户:买家自己注册了账户,用自己的账户来下单购物。
代购账户:代购是指把买家A的信息放到具有购买账户的买家B名下,通过买家B的账户来给下单买家进行购物。简单点理解,可以参考海外代购。代购的优点就是方便省事,缺点是退换货周期长,风险是个人信息泄露,容易被倒卖。
 
七、结语
 
任何业务系统都离不开领域建模,把这些领域抽象清楚、边界界定清晰是开发业务系统的关键,领域之间相互交互最终构成一个可以自洽的系统。如何进行好的领域建模,就要求每个开发人员对业务有深入的认识、思考和抽象。
 
 

posted @ 2019-08-23 11:47  walle搬砖  阅读(875)  评论(0编辑  收藏  举报