网银代扣电费的做法

07-05-13 cxh1121
         

有个问题
比如某银行提供有网上缴电费的网上银行业务,我想知道他是怎样保证我卡上的钱能转到电力公司在银行的帐户,同时也能让电力公司充缴这个用户的电费应交信息
银行自己保证从我的卡里面转到电力公司的帐户里面这块倒应该没问题,但我就想知道怎样保证银行完成两个帐户的转帐,同时也能保证电力公司能从自己的数据库中也充缴我的电费信息
再就是不管是用交易中间件还是别的技术,我想单边帐是不能避免的,如果出现了单边帐,又应该怎样完成单边帐的处理呢?

         

banq
2007-05-14 09:38

如果这两家公司采取不同平台,这个需要复杂的分布式事务来完成(通过webservice)。

SOA是这方面很权威的技术,也是它诞生存在一个基础原因,研究这方面资料吧。

gougou3250
2007-05-19 11:08

这种东西肯定需要用分布式事务来做

jiasuper
2008-07-31 19:13

现在的银行系统基本都是基于SOA架构的
其实你说的这个问题就是银行的代扣业务
网上缴电费可能至少要经过4个系统:网上银行系统、银行前置系统、银行核心系统 和 电力公司的系统
具体的流程如:
1:当你从网上银行发起一个缴电费的请求时。网上银行会将请求报文发给银行前置系统。
2:银行前置系统接到代扣报文时,会给银行核心系统发一个代扣报文。
3:银行核心系统从你的卡上转帐到电力公司的对公账户,并给银行前置系统一个应答。
4:银行前置系统收到银行核心系统应答后,判断应答码,失败直接给网上银行系统一个应答码,成功则继续发送报文到电力公司的系统。
5:电力系统收到请求后会给银行前置系统一个应答。
6:银行前置系统判断电力系统的应答,如果应答是失败或长时间没有收到应答,会向银行核心系统发起冲正交易,将刚才扣的钱返还到你的账户,成功则给网上银行系统扣款成功应答。
据我所知大多数没有使用分布式事务来做,并不需要做得那么复杂,而且各系统间通讯也是异步的 在各个系统的内部处理处理好事务