无忧支付网首页
站内搜索
您当前的位置:主页 > 相关文档 >

代收系统的出金子系统详细设计介绍

添加时间:2022-10-13

  1、出金产品模块详细设计

  总体架构中,商户模式的结算并不涉及机构主动发起交易指令,而市场模式的结算是由机构主动发起,和代收交易一样,需要对外提供接口,接收商户的结算指令。外部产品需要有市场订单结算表记录请求信息,数据库中目标数据主要字段(篇幅所限)如表1所示。

表1 市场订单结算表

场订单结算表

  类图如图1所示,MktSettlementServiceImpl的tx1341方法作为原始数据处理的第一层,商户报文通过Mkt1341Request装载进来,传入市场订单号orderNo、结算金额amount等关键信息,再由MktSettlementBO进行订单的余额扣减操作,其调用SettlementTrans、MarketSettlementDAO等对象对结算记录状态以及订单余额进行事务处理。

  结算成功之前,订单余额会进行相应冻结,结算成功之后,订单余额再进行真实扣减。

市场模式结算类图

图1 市场模式结算类图

  2、结算中心模块详细设计

  结算中心是一个批处理模块,即周期性地执行任务,读取交易记录,生成汇集、清算、结算记录。类图如图2所示,JobGroupBase是一个抽象的任务组类,定义doTask方法让JobGroup1000、JobGroup1001、JobGroup1002等子类实现自己的任务编排,JobGroup为定时任务的执行入口。

  具体的任务内容由Job接口来定义,Job100101、Job100102等为具体的实现,JobGroup通过对Job的编排来实现不同的任务组合,而Job实例调用ClearingBO来进行具体的业务逻辑处理。

结算中心类图

图2 结算中心类图

  结算中心JobGroup的数据处理过程分为3个阶段,一个JobGroup对应一个阶段,如图3所示。

  第一个阶段JobGroup1000,根据外部产品的代收交易记录CpSingleGathering、CpBatchGatheringItem、CpMarketGatheringBatchItem、CpMarketGathering生成JyCollectedTx汇集记录。

  第二个阶段JobGroup1001,根据已生成的JyCollectedTx汇集记录按照机构ID和结算标识汇总生成JsClearing机构清算记录,根据交易中心已存在的JyOrderSettlement结算记录按照订单号、收款账号汇总成JsOrderSettlementSum收款人清算记录。

  第三个阶段JobGroup1002,根据第二阶段生成的清算记录,分别生成面向机构的结算记录JsSettlement和面向收款人的结算记录JsPayeeSettlement。结算记录用于后续委托付款的出金记录WtFundOut生成。

结算中心数据流向

图3 结算中心数据流向

  3、委托付款模块详细设计

  委托付款受理结算中心的类图如图4所示。

委托付款生成出金记录类图

图4 委托付款生成出金记录类图

  根据结算中心的结算记录,生成WtFundOut出金记录,用于后续人工出金操作,结算记录区分特约商户收款人和非特约商户收款人,而在出金记录中,并不区分,出金记录只关心资金的来源和目标账户,基本上和具体的业务场景脱钩。

  结算中心调用AgentSettleServiceImpl的tx1001方法,在FundOutSettleBO对象中生成出金记录WtFundOut主单和WtFundOutOrderItem明细,一个WtFundOut主单下可以关联多条WtFundOutOrderItem明细,通过调用FundOutOrderTrans来实现主单和明细的事务操作。

  委托付款生成的出金记录对应的数据库目标表结构,除了记录来源账户、目标账户、金额等关键字段之外,还有冻结金额,防止并发操作造成重复出金;BankNoByPBC人民银行联行号,用于请求央行的清算系统进行跨行转账;

  支持人工手动触发出金和系统自动出金,这需要事先约定交易类型对应的出金触发规则,系统根据规则选择直接请求银行网关,还是等待人工在页面上点击“执行”按钮发送出金指令。

关闭

1.点击下面按钮复制微信号

***********

2.打开微信→查找微信号

加为好友 开始支付接入