系统设计:用户提现及手续费
本篇文章主要对用户提现及提现手续费进行复盘。
文章中所指提现是用户在平台发起提现申请,监管银行按照指令将客户虚拟子账户中的金额打款至签约绑定的银行卡,监管账户及平台资金减少,签约绑定卡资金增加的过程。
场景描述
假设B商家在平台出售产品共收入1000元,现在需要将资金全部提取出去用作其他用途,平台手续费率为千分之五。
业务流程
用户登录平台后,输入提现金额及交易密码,提交提现申请。
在提交申请前系统会判断余额会否足够及与银行系统是否链接,如符合条件,进入财务审核环节(根据实际应用场景定是否需要这一步),审批通过后才会通过指令调银行出金接口,银行进行出金处理。
账户变动情况
下述表格模拟在提现过程中遇到几种问题,及对应的账户变动情况说明。
资金冻结:B商户在平台提交提现申请后,由于需要平台财务人员审核(主要针对商户发票、客户真实性等进行审核)对提现资金进行冻结,确保资金安全。
财务审核不通过
则表明用户提现失败,系统将冻结资金进行解冻,资金原路返回到平台的可计提账户中,由于不涉及银行流程,因此操作对银行无感,虚拟子账户不受影响。
冻结金额-1000,可提现金额+1000,变动后:可提现金额1000,冻结金额0
财务审核通过
财务审核通过后,平台发起调用银行出金接口并发送请求,接口请求报文包括:交易流水号、客户名称、银行账号、资金账号、转账金额、币种、摘要等基本信息,监管银行接到指令后,校验是否满足出金条件:
(1) 如满足则返回交易处理中提示并进行出金操 作,银行返回成功状态时,虚拟子账户及平台冻结金额均需扣减提现所需金额,并更新平台提现状态为成功;
冻结金额-1000,虚拟子账户余额-1000,变动后:可提现金额0,冻结金额0,虚拟子账户余额0
(2) 如不满足出金条件或是银行出金处理失败 ,则银行返回失败状态时,虚拟子账户资金不变且冻结金额资金回退至可提现金额,并更新平台提现状态为失败。
冻结金额-1000,可提现金额+1000,变动后:可提现金额1000,冻结金额0
关于手续费问题我觉得有必要再说明下,由于手续费属于平台收益,在调用银行接口时需要与实际用户到账金额进行区分,因此本示例中B商户提现金额是1000,手续费应该是5,因此实际到账金额应该为995,在实际调用出入金接口时传参应该是995,不是1000!!
那么另外5元到哪里去了呢?这个就要等到晚上进行系统对账时将多余的5元作为收益计入平台在监管账户的平台账户中,后续关于该账户的大坑就再细说吧~
本文由 @forget 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自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: