Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222269
  • 博文数量: 43
  • 博客积分: 1503
  • 博客等级: 上尉
  • 技术积分: 967
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-20 22:33
文章分类

全部博文(43)

文章存档

2013年(6)

2012年(2)

2011年(3)

2010年(22)

2009年(9)

2008年(1)

我的朋友

分类: IT职场

2011-12-23 13:02:20

一笔交易在终端已经置为成功标志,但是发送到主机的帐务交易包没有得到响应,所以不确定该笔交易是否在主机端也成功完成,为了确保用户的利益,终端重新向主机发送请求,请求取消该笔交易的流水,如果主机端已经交易成功,则回滚交易,否则不处理,然后将处理结果返回给终端。

一般银行这类系统会提供下账和相应冲正交易接口,大多是SOCKET方式提供,  
  通常,交易发起方,也就是你这方,需产生一个交易请求流水号,  
  当冲正时,在冲正请求交易里面指定被冲正交易的流水号.  
  大多冲正交易仅允许一个交易日内..  
  用途可以有两方面:  
  1,交易完整性:  
  A,如,当银行端下账交易超时,或者网络超时,你作为交易发起端是无法获得交易是否成功与失败的  
  信息..这时候,该交易就处于不明确状态.需要用冲正交易去把此交易处理成失败.  
  B,如,当银行端下账成功,接着你这方处理代收费不成功,于是前面下账成功的交易需要处理成失败.这也是需要用到冲正交易.  
  2,业务功能上:  
  在某些情况下,允许用户在短时内撤消整个代收费交易,这时,作为完整交易的一部分的银行下账,  
  也就相应作冲正处理.  

 

目前大部分银行业务处理系统采用冲正或重复办理的方式,了解决数据不一致的问题。这两种方式的基本思想,都是当数据不一致性问题发生后,通过事后附加的干预过程来进行补救。

  (一)冲正方式

  冲正方式下,一笔交易以客户端为准,客户端完成,该笔交易才完成,客户端失败,则该笔交易失败。当应答传输过程失败,前端认为该笔交易失败,将产生一笔冲正交易。该笔冲正交易将取消上一笔交易的结果,从而恢复客户端及服务端的数据一致性。

  按产生冲正交易的时机,可以分为三种:

  ●立即冲正,是一笔交易超时无应答时,发出冲正;

  ●定时冲正,是指按固定的时间间隔,发出冲正;

  ●当一笔交易未成功时,在做下一笔交易时,先自动做一个冲正交易,当冲正交易完成后,才执行正常交易。目前,pos系统广泛使用的是下一笔交易冲正的方式。

  冲正方式程序控制简单,适应性广。但这种方式无法确保冲正成功的时间,从而也就无法控制风险存在的时间。一个极端的情况是,通讯故障是由于物理线路中断造成的,在线路恢复正常前,冲正交易无法完成,风险将一直存在。

  (二)重复办理方式

  重复办理方式下,一笔交易以服务端为准,服务端处理成功,无论客户端是否收到结果,均认为该笔交易成功。当应答传输过程失败造成客户端交易失败,客户端必须重复办理该笔交易,在服务端,收到重复的交易请求,若该笔交易已处理,则将上笔交易的结果作为本次交易的处理结果返回,若未处理,则按正常交易进行处理。

  这种方式的优点在于控制简单,易于实现。局限性基本同冲正方式,即无法控制风险存在的时间。另外,以服务端为准的条件使它的使用范围受到一定的限制。在对公会计系统中,通常采用重复办理的方式。

阅读(5143) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~