后台支付系统考虑哪几方面
2015-12-29 18:42
267 查看
设计后台系统基本按照以下几个方面考虑:数据、流程、审计风控
数据:交易流水、交易状态、交易订单
交易流水:流水ID、商户订单号、第三方交易流水号、金额、发生时间、商品信息、进出帐类型
交易状态集:基本态(未支付、已支付、已退款)、可能的特殊态(已预付、以补充支付、交易作废、部分退款)
交易订单:订单总金额、应收金额、实收金额、商品总价、优惠金额(市场补贴)
计算规则以及数据字典的定义,建议与财务专业术语一致,保证没有理解误差。
流程:
预付、补充支付、退款
预付:用户预订酒店房间缴纳部分定金,预付后封锁库存
补充支付:订单服务完成,最终支付的总金额>预付金额,需要补充支付,补充支付后交易完成
退款:自动退款,当交易未完成或重复支付等情况则根据退款逻辑自动触发退款,手动退款,当产生客服人工介入处理、或异常情况则需要容错处理人工退款
审计风控:
对账:
系统交易记录自洽,需要所有支付渠道金额加和等于订单的服务应收金额,
第三方对账:保证第三方(支付宝微信等)的交易流水与系统内的流水完全匹配
市场补贴以及内部会员的对账:保证交易记录的实际发生费用与虚拟账户系统、营销系统记录的数据一致
税率:单笔或多笔交易其中可能涉及个人所得税、以及交易税等
风控:要考虑支付产生的风险规避、交易失败的处理方式,重复支付的处理方式,系统权限控制。
其中:交易与库存锁定一定是统一的事故处理——保证交易完成才能执行库存锁定,避免造成公司财产损失(公司亏钱,你还有钱拿么?)
权限控制,系统的手动操作扣,调账操作一定是高级的财务或运营人员。
重复支付:保证用户单次支付成功,避免用户财产损失(用户亏钱,那一定会投诉)
对于避免重复支付的解决方案给个简单方案分享一下 :
注:
1、方案一和方案二 单独就可以避免重复支付,也可以同时生效
2、方案一有一个弊端就是如果同一个订单,可以被支付多次,例如100元的订单,微信先支付50然后 有支付50 则需要取消方案一,保留方案二
3、因为支付宝和微信都有避免重复支付机制“同一个商户订单号不可以被支付多次”,所以一般的简单产品支付,方案一就可以解决。
数据:交易流水、交易状态、交易订单
交易流水:流水ID、商户订单号、第三方交易流水号、金额、发生时间、商品信息、进出帐类型
交易状态集:基本态(未支付、已支付、已退款)、可能的特殊态(已预付、以补充支付、交易作废、部分退款)
交易订单:订单总金额、应收金额、实收金额、商品总价、优惠金额(市场补贴)
计算规则以及数据字典的定义,建议与财务专业术语一致,保证没有理解误差。
流程:
预付、补充支付、退款
预付:用户预订酒店房间缴纳部分定金,预付后封锁库存
补充支付:订单服务完成,最终支付的总金额>预付金额,需要补充支付,补充支付后交易完成
退款:自动退款,当交易未完成或重复支付等情况则根据退款逻辑自动触发退款,手动退款,当产生客服人工介入处理、或异常情况则需要容错处理人工退款
审计风控:
对账:
系统交易记录自洽,需要所有支付渠道金额加和等于订单的服务应收金额,
第三方对账:保证第三方(支付宝微信等)的交易流水与系统内的流水完全匹配
市场补贴以及内部会员的对账:保证交易记录的实际发生费用与虚拟账户系统、营销系统记录的数据一致
税率:单笔或多笔交易其中可能涉及个人所得税、以及交易税等
风控:要考虑支付产生的风险规避、交易失败的处理方式,重复支付的处理方式,系统权限控制。
其中:交易与库存锁定一定是统一的事故处理——保证交易完成才能执行库存锁定,避免造成公司财产损失(公司亏钱,你还有钱拿么?)
权限控制,系统的手动操作扣,调账操作一定是高级的财务或运营人员。
重复支付:保证用户单次支付成功,避免用户财产损失(用户亏钱,那一定会投诉)
对于避免重复支付的解决方案给个简单方案分享一下 :
注:
1、方案一和方案二 单独就可以避免重复支付,也可以同时生效
2、方案一有一个弊端就是如果同一个订单,可以被支付多次,例如100元的订单,微信先支付50然后 有支付50 则需要取消方案一,保留方案二
3、因为支付宝和微信都有避免重复支付机制“同一个商户订单号不可以被支付多次”,所以一般的简单产品支付,方案一就可以解决。
相关文章推荐
- 【数位DP】bzoj1026: [SCOI2009]windy数
- JAVA利用Jacob将EXCEL转成PDF
- 19.Android之文件存储方法学习
- Linux C 算法——查找
- LeetCode之Bit Manipulation题目汇总
- 用wireshark条件过滤后的数据包怎么保存
- 关于软件项目的开发基本流程
- PopWindow 添加背景以及设置背景和popwindow进入进出动画
- POJ 1017 Packets(贪心,好题)
- (java集合原理)--01 HashMap的实现原理
- 表数据被delete 掉了 闪回的两种方式
- 如何使你的vim高大上?
- yii2 gridview
- 【数位DP】Hdu 3652:B-number
- 一台电脑同时运行多个tomcat配置方法
- lcd彩屏画点画线和画圆 嵌入式开发
- UIApplication 常用方法
- 常用JS
- JavaScript 中的面向对象的初步认识
- 源码探索系列15---那个AsyncTask里面的FutureTask