组合支付交易
2017-12-15 13:46:07 0 举报
组合支付交易
作者其他创作
大纲/内容
做预约交易时,预约单下成功后,也插入此表
组合支付handler
2.校验及准备参数:验证每个payVO的产品是否合规,可用份额
7.1.\b买入多个产品的话,考虑可新增买入计划表
payVO对象作为支付对象,包含产品\bID,订单业务码,积分及优惠券使用
\b支付计划表\b包含:支付优先级,可用份额,支付份额,支付金额,支付状态
5.根据算法确认组合支付的优先级,可用份额是否满足支付
1.入参:组合支付作为一个集合对象List传入
rtta超时交易:对RTTA超时交易,依然采用扫描,在执行完成后,判断\b多支付是否完成,update父订单支付完成状态成功后,可继续调用9执行买入
for(plan:purchaseVoList){new templateprepare validate 校验买入金额是否大于父订单支付金额子订单,\b交易(rtta)|ta更新plan更新父订单}
for(plan:payVoList){new templateprepare validate lock:校验真实可用份额是否=plan中计划份额子订单,\b交易(rtta)|ta更新plan更新父订单}
8.支持多种支付的handler,\b根据支付计划表,按优先级依次支付,成功金额\b更新到父订单上;每个支付就跟现有的交易一样,可以用templatepreparevalidatelock子订单,\b交易(rtta)|ta
4.组合支付锁
组合支付-实时交易
算好\b每个payVO的\b使用份额,到账金额
6.生成父订单,\b包含汇总from的总\b支付金额|份额;汇总to的总买入金额|份额;
订单新增字段,区分买入还是支付,支付到账总金额,支付总状态,买入总金额
\b异步处理:当多个支付耗时长时,可考虑使用异步线程池,\b使用这个方式时,要在每个子支付完成时加入判断是否可以调用9,可以在父订单加入字段,更新多支付是否完成
7.把已经计算好的payVO插入\b支付计划表
\b\b\b\b对只买入1笔的rtta实时申购失败:对支付计划的所有交易撤单
9.支持多种买入的handler,\b根据买入计划表,按优先级依次买入,成功金额\b更新到父订单上;每个买入就跟现有的交易一样,可以用templatepreparevalidate子订单,\b交易(rtta)|ta
每个payVO的验证是一个validateHandler,可按产品大类做成4个
组合买入handler
3.准备参数:(1)把每个payVO的可用份额汇总到父订单,校验\b总可用份额是否够用(2)准备父订单的信息
rtta失败交易:\b对定期宝失败重试,成功继续;最终失败的话,执行对所有支付计划撤单回滚\b操作
\b\b\b\b对只买入多笔的rtta实时申购失败:情况比较复杂,待产品确认
0 条评论
下一页