- 非官方产品,客户应优先根据官方开发手册自行开发。
- 开发者免责:开发者力求正确,也经过测试,但无法避免潜在的错误。任何软件都可能存在错误。
- 客户使用银企互联,应遵从谨小慎微的原则,从查询业务、小金额业务着手,必要时采用银企互联提交指令、企业网银授权的模式。
- 本WebService程序在Windows操作系统上部署,需要.net4.0框架。
- 未尽事宜,请参阅官方开发手册。
常规开发模式中,数据交互方式如下:
如果是签名类交易,业务发起流程如上图。客户开发的工作量主要是 1、3,较为繁琐。
如果是查询类交易,则上述步骤中 1、2 不做。
企业客户开发过程通常遇到的问题:
- 不太愿意看官方开发文档。实际上,我自己开始试手银企互联,就是按照官方文档来的。
- 不知道如何去做签名。
- 银行测试环境日期非标准,无法灵活应对请求信息中的日期、时间相关参数。
- 很少自己产生日志文件,遇到错误难以确定。
- 采用过程化,很少对象化,代码复用性差,程序不健壮。
- 官方提供的DEMO比较可怜。
- 部分企业客户的系统不支持socket协议,需要银行或者开发商提供辅助手段。
- 一些高级技巧、应用无从谈起,比如大批量指令发送,制作PDF格式的电子回单。
本方案设计的数据交易为:
本方案图中步骤 2、5,相当于第一图中的 1、2、3、6,由 WebService 自动执行。
特点:
- ERP系统只需要通过HTTP协议将参数和发送内容一次性POST到WebService指定页面,接收应答即可。开发者不需要关注签名、提交页面格式、报文头参数、压缩模式等,实现了跨平台、跨语言的简单开发。
- 支持压缩模式提交大批量指令:rd最外层头尾套<zip>、</zip>即可,比如:……<zip><rd>……</rd>……<rd>……</rd></zip>……。WebService会自行压缩数据。如将压缩好的数据放入zip节点(官方做法)后使用本程序提交反而会出错。
- XML报文中日期/时间关键参数自动配置,自适应银行主机时间。特别是在测试环境的时候,不需要调整本机时间。
- ICBC_Log文件夹可以保存日志文件,方便跟踪。
- 提供PDF回单文件的高级应用。
部署本WebService,需要.NET4框架。
- 如果没有按照.net4框架,请安装。如果没有安装IIS,请安装。为减少错误,其中应用程序开发功能请全选。
- 添加网站,选择物理路径,自己定义一个不常用的端口,本例使用1398。
- 运行。浏览器打开对应地址,比如http://127.0.0.1:1398,点击WebService.asmx,可以看到提供的服务。点击CheckNC或者CheckWS,可以查看到对应返回内容,则表明部署成功。
- 如果需要从局域网其他电脑访问本WebService,则需要在防火墙中添加的本服务端口(入站、TCP)。
WebService中Web.Config信息:
nc_ip:NetSafeClient的IP地址。
nc_hp、nc_hp:NetSafeClient的HTTPS服务端口以及签名端口。
cis、id:客户企业网银对应的CIS编号和证书名称。
log、pdf_save:是否产生日志文件,是否保留pdf回单文档。
如果防火墙端口未添加,从其他电脑访问出错:
添加端口后,访问正常:
提供的方法参数,可以自行点击WebService.asmx查看。比如QACCBAL,从图中看到就是acct一个参数:
从网上摘录一些代码,作为本项目的跨语言测试。
PHP:
本文相关附件文档存于:https://pan.baidu.com/s/1Kq6UzXmeV-akAOum2ghNKQ