@iamfox
2015-06-06T17:00:02.000000Z
字数 1356
阅读 1707
打造一个虚拟帐户引擎,全面支持如积分、红包、优惠券、消费券等各类虚拟帐户的增减、转帐、清算、冻结、有效期控制、支付功能。减少重复开发,提高数据统一性,为未来各种各样的虚拟支付需求扩展打好基础。
币种
积分、红包、优惠券这些本质上都是一种虚拟货币,币种属于基础数据,与人民币之间有独有的汇率。
帐户
一个帐户可以属于个人或者商户或者平台,一个帐户只能使用一种币种。帐户内容还包括可用余额和冻结余额,过期失效时间等。
例一:张三的积分帐户,总额2000分,2015年12月31日24时过期清零。
例二:李四的红包帐户,总额100元,其中50元下单冻结中。
例三:商家A的消费券帐户,总额10000元(金额来自用户下单时消费券支付,可对商家隐藏可见性,用于报表统计和清结算)。
子帐户
子帐户拥有帐户的全部特性,它记录的是父级帐户的一部分资产。
例一:张三的十一消费券,总额100元,2015年12月31日24时过期清零。
例二:张三的消费满额度赠送消费券,总额20元,2016年4月1日0时过期清零。
综上,张三的消费券父帐户总额120元,无过期清零时间。十一消费券和消费满额度赠送消费券,是两个子帐户的用途类型。
各类型帐户都可以支持子帐户概念。
用途类型
消费券可能是由十一促销和消费满额度两个活动产生,因此子帐户需要划分用途类型,用于存放十一促销消费券,用于存放消费满额度赠送消费券两种类型。
汇率管理
通用汇率是以人民币为兑换基准,在必要时可以用不同类型的子帐户按中间汇率进行互转,还可以扣除一定手续费。
此外可以设临时汇率,比如在某个时间段,可以按特定汇率在两种类型的帐户币种之间互兑,满足灵活需求。
转帐
支持同类帐户之间、不同类帐户之间的转帐。
流水
所有帐户变动流水。
需求是某个商户每天最多发放10000元红包给购买的消费者,可以在每日0点建立一个商户红包子帐户,过期失效时间为当天24时,充入10000红包,然后在用户下单时冻结份额,在用户支付成功时转帐给消费者帐户。
业务事件
提供业务事件处理能力,如用户在直营店产生订单事件,针对该预置的事件单独提供处理函数,决定帐户的变动。还可以有用户注册事件,推广链接点击事件,会员等级提升事件等等。
业务系统将事件推送给虚拟帐户系统或消息总线,由虚拟帐户系统中的业务订制处理模块来判断该事件的合法性,处理帐户余额的增减。
规则维护
针对每一种事件设定基准规则。例如,针对下单事件可以单独定义一个规则对象,里面存放一些如不可共用的类型,限额规则,使用时段规则之类的约束信息,每次有新的下单预判请求过来,处理函数要参照该规则信息来处理。
预判断和冻结
在产生一个真实的事件(如生成订单)之前,可以通过接口预判方案是否合法,还可以通过参数设定如果合法即冻结相关资产,然后得到一个操作令牌,在正式产生事件之后,业务处理模块再根据事件中携带的预处理许可令牌去扣减已冻结资产。
打造一个具有相当通用性,可随着业务规则不断扩展的虚拟帐户引擎,提供标准的虚拟帐户交易流程控制,成为一个内部的支付平台,支持未来可能产生的跨平台互兑。