银行unix  客户端:win 准备用 Tclientsocket ,tserversocket做开发,工作站15台以下。
            <---2----                             ----4----->
[银行Server]     [Client 代理服务器   Server]        [Client 工作站]
             ---3---->                            <----1----          1、我的工作流程不知是否正确,在代理服务器上Server收到工作站的请求后,让Client发送请求到银行。它们都
  工作在noblock模式下有没有问题?
2、代理服务器上Server与Client如何的进行通信。
3、银行是block模式,与其通信的代理服务器的Tclientsocket设为 noblock是否可以。
4、在开发银行业务时,应注意什么问题。请各位多多指点。
   这是小弟的第一份工作,不想进丢啊!!!!

解决方案 »

  1.   

    一般来说,代收费被划分成几种交易;
    (1)查询 (2)收费 (3)补打发票 (4)退费
    每种交易都是使用两种包,一个是数据包一个是控制包,先传送控制包,控制包说明了下面将要传送的包是做什么交易的,数据包大小多少,以及效验大小
    我对win 与Unix的交互不是很熟悉,但是,我建议你应该采用和银行完全一致的阻塞形式,尤其是你要一次提交两个包的时候。需要范例资料的话可以找我,我在中行负责代收费项目的维护。
    [email protected]
    希望可以给你帮助
      

  2.   

    对不起哦,我们的老板说这些资料是保密的,不能外传,所以只能给你谈一下我的体会了。
    你的图我还看不大懂,不过就银行代收费的一些经验教训谈一下好了。
    (1)首先你的服务要经过压力测试,由于银行网点众多,你应该考虑最坏的情况,所有的网点同时发起交易是否可行,而且银行大多使用56-128k的专线,可能容易发生堵塞,这样的情况也需要应付
    (2)尽量压缩包的大小,比如分为数据报和确认包,数据报自然是双方交互的数据了,而确认包,应该尽可能短小,记录各种交易结果,比如确认银行的交费请求是否认可,交费是否成功,这些东西一个标志就可以解决。
    (3)重视对帐和冲正的处理。这个可是害苦我了,代理单位的对帐程序虽然声称是可以发觉当天交费失败的情况,但是往往不是这样,有时候,我们银行和代理单位之间出现了单边帐的情况,本来应该在对帐的时候由你们的程序予以更正,但是你们的程序也没有处理。
    (4)对于通信上,尽量不要采用与银行不同的通信方式,银行是block方式,你也尽量采用block方式,否则可能出现交易错误的情况
    (5)对于银行来说一个交易的流程是这样的
        银行柜台发起查询交易,送控制包(控制包中指定后面的数据报是查询),再送数据报->代理单位的服务程序填写数据报的内容(比如客户的交费金额),先送控制包(比如告诉银行后面有该客户的数据,如果没有这个客户的数据也在控制包中表示查询失败),再送数据报->中断通讯->银行再次发起交费交易,先送控制包(表明下面的交易是收费),再送控制包(把原来的数据报送回,并填写交费时间等你方需要知道的数据)->代理单位处理,并送控制包(控制包表明代理单位是否记帐,是否认可了银行的交费)->中断通讯 
    如果复杂一些的,可能你们还要发送一个打印发票格式(移动代收费就是这样的,发票格式由移动公司提供)