工行银企互联(NC模式)中间件开发模式

时间:2024-03-16 08:14:07
  1. 非官方产品,客户应优先根据官方开发手册自行开发。
  2. 开发者免责:开发者力求正确,也经过测试,但无法避免潜在的错误。任何软件都可能存在错误。
  3. 客户使用银企互联,应遵从谨小慎微的原则,从查询业务、小金额业务着手,必要时采用银企互联提交指令、企业网银授权的模式。
  4. 本WebService程序在Windows操作系统上部署,需要.net4.0框架。
  5. 未尽事宜,请参阅官方开发手册。

常规开发模式中,数据交互方式如下:

工行银企互联(NC模式)中间件开发模式

 

如果是签名类交易,业务发起流程如上图。客户开发的工作量主要是 1、3,较为繁琐。
如果是查询类交易,则上述步骤中 1、2 不做。

企业客户开发过程通常遇到的问题:

  1. 不太愿意看官方开发文档。实际上,我自己开始试手银企互联,就是按照官方文档来的。
  2. 不知道如何去做签名。
  3. 银行测试环境日期非标准,无法灵活应对请求信息中的日期、时间相关参数。
  4. 很少自己产生日志文件,遇到错误难以确定。
  5. 采用过程化,很少对象化,代码复用性差,程序不健壮。
  6. 官方提供的DEMO比较可怜。
  7. 部分企业客户的系统不支持socket协议,需要银行或者开发商提供辅助手段。
  8. 一些高级技巧、应用无从谈起,比如大批量指令发送,制作PDF格式的电子回单。

本方案设计的数据交易为:

工行银企互联(NC模式)中间件开发模式

本方案图中步骤 2、5,相当于第一图中的 1、2、3、6,由 WebService 自动执行。

特点:

  1. ERP系统只需要通过HTTP协议将参数和发送内容一次性POST到WebService指定页面,接收应答即可。开发者不需要关注签名、提交页面格式、报文头参数、压缩模式等,实现了跨平台、跨语言的简单开发。
  2. 支持压缩模式提交大批量指令:rd最外层头尾套<zip>、</zip>即可,比如:……<zip><rd>……</rd>……<rd>……</rd></zip>……。WebService会自行压缩数据。如将压缩好的数据放入zip节点(官方做法)后使用本程序提交反而会出错。
  3. XML报文中日期/时间关键参数自动配置,自适应银行主机时间。特别是在测试环境的时候,不需要调整本机时间。
  4. ICBC_Log文件夹可以保存日志文件,方便跟踪。
  5. 提供PDF回单文件的高级应用。

部署本WebService,需要.NET4框架。

  1. 如果没有按照.net4框架,请安装。如果没有安装IIS,请安装。为减少错误,其中应用程序开发功能请全选。
  2. 添加网站,选择物理路径,自己定义一个不常用的端口,本例使用1398。
  3. 运行。浏览器打开对应地址,比如http://127.0.0.1:1398,点击WebService.asmx,可以看到提供的服务。点击CheckNC或者CheckWS,可以查看到对应返回内容,则表明部署成功。
  4. 如果需要从局域网其他电脑访问本WebService,则需要在防火墙中添加的本服务端口(入站、TCP)。

工行银企互联(NC模式)中间件开发模式

工行银企互联(NC模式)中间件开发模式

 

工行银企互联(NC模式)中间件开发模式工行银企互联(NC模式)中间件开发模式

WebService中Web.Config信息:

nc_ip:NetSafeClient的IP地址。

nc_hp、nc_hp:NetSafeClient的HTTPS服务端口以及签名端口。

cis、id:客户企业网银对应的CIS编号和证书名称。

log、pdf_save:是否产生日志文件,是否保留pdf回单文档。

工行银企互联(NC模式)中间件开发模式

如果防火墙端口未添加,从其他电脑访问出错:

工行银企互联(NC模式)中间件开发模式

 

添加端口后,访问正常:

工行银企互联(NC模式)中间件开发模式

提供的方法参数,可以自行点击WebService.asmx查看。比如QACCBAL,从图中看到就是acct一个参数:

工行银企互联(NC模式)中间件开发模式

 

工行银企互联(NC模式)中间件开发模式

从网上摘录一些代码,作为本项目的跨语言测试。

PHP:

 

本文相关附件文档存于:https://pan.baidu.com/s/1Kq6UzXmeV-akAOum2ghNKQ