招商银行直联系统开发指

上传人:仙*** 文档编号:32667495 上传时间:2021-10-15 格式:DOC 页数:59 大小:2.87MB
收藏 版权申诉 举报 下载
招商银行直联系统开发指_第1页
第1页 / 共59页
招商银行直联系统开发指_第2页
第2页 / 共59页
招商银行直联系统开发指_第3页
第3页 / 共59页
资源描述:

《招商银行直联系统开发指》由会员分享,可在线阅读,更多相关《招商银行直联系统开发指(59页珍藏版)》请在装配图网上搜索。

1、招商银行直联系统开发指南version 1.0.0修订记录日期修订版本修订人修订内容2010-10-181.0.0杨成海新建招商银行直联系统开发指南11系统简介31.1概述31.2背景31.2.1前置机式直联:31.2.2嵌入式直联:31.3阅读对象31.4术语定义42解决方案42.1概述42.2功能52.3整体要求62.3.1系统要求62.3.2技术要求62.3.3企业要求62.4开发流程62.4.1准备62.4.2开发72.4.3使用73前置机式83.1前置程序说明83.1.1概述83.1.2程序主界面说明83.1.3菜单功能说明93.1.4注意事项123.2通讯协议说明133.2.1概述

2、133.2.2HTTP/HTTPS协议133.2.3SOCKET协议133.3XML报文格式133.3.1概述133.3.2格式三143.3.3格式一153.3.4格式二163.3.5说明173.4调用频率173.4.1说明173.5并发性能183.5.1说明184嵌入式184.1开发概述184.1.1概述184.1.2数据格式184.1.3接口返回值194.2多线程调用204.2.1概述204.2.2调用方法204.2.3调用说明204.2.4术语定义214.3编程接口214.3.1XML请求(XmlComm)214.3.2系统函数224.3.3账户信息304.3.4支付结算354.3.5代

3、发代扣404.3.6国内信用证464.3.7商务支付524.3.8其他接口545版本说明555.1版本信息555.2升级建议565.3查看版本信息566资源下载576.1招商银行银企直连接口说明书(XML格式三说明文档)576.2人行电子票据银企直连接口说明书(XML格式三)576.3招商银行票据通银企直连接口说明书(XML格式三)576.4XML格式一和格式二报文说明文档586.5开发范例源码581 系统简介1.1 概述本开发指南对招商银行企业银行直联系统(以下简称本系统)进行详细地描述,通过该指南可以对本系统有个全面地了解,并可用于指导如何在该系统上进行二次开发,实现与企业财务/ERP/电

4、子商务交易平台等系统(以下简称企业财务系统)平滑对接和有机融合。 1.2 背景招商银行网上企业银行本身有一套完整的经办、审批机制,帮助企业规范财务制度、安全地做网上业务,但是它有一定的限制,就是必须在企业银行系统内封闭的完成。 很多企业都有一套自己的财务系统,企业使用财务系统生成一些经办业务需要的数据,如支付脱机制单数据、工资表和收方信息等,然后将生成的数据交由企业银行系统经办和审批,再将银行返回的数据导入到财务系统中。目前企业财务系统与企业银行系统间只能以文件形式进行数据交换,而企业希望能在自己的系统内和企业银行间进行直接的数据交换。 基于以上情况,招商银行开发了本系统。本系统提供两种方式与

5、企业财务系统对接。一种是前置机式;一种是嵌入式。 1.2.1 前置机式直联:即通过在企业内部网络内安装一台前置机(即安装了本系统并启动了直连服务的PC机),企业财务系统通过报文交互的方式与前置机通讯,以实现向企业银行系统发送指令,并接收银行返回的数据。 1.2.2 嵌入式直联:即通过在企业财务系统内部调用本系统提供的接口,实现财务系统和企业银行间的直接交互。本系统作为财务系统的一个组成部分嵌入到财务系统,在财务系统和企业银行间采用不落地方式交换数据,财务系统通过本系统提供的接口直接向企业银行系统发送指令,并接收银行返回的数据。 1.3 阅读对象预期读者为利用本系统进行二次开发的相关人员,以及其

6、他需要了解本系统的人员。 1.4 术语定义招行银企直联:招商银行提供的一种网上“企业银行”系统与企业的财务软件系统的直接联接的接入方式。招行企业网银:招商银行企业网银是使用本地客户端软件,通过Internet网络或其它信息网络,将用户电脑终端连接至银行,实现将银行服务直接送到用户办公室和家中。它改变了银行传统的服务方式,是银行业务系统的扩充和延伸。用户管理:企业银行系统的用户分为系统管理员和一般用户。企业到银行申请开办“企业银行”业务时,由银行为企业生成两个系统管理员,两个系统管理员的权限完全平等,共同负责企业银行管理的工作。通常系统的设置必须由一个系统管理员进行经办而由另一个系统管理员进行授

7、权,必须两个系统管理员同时认可后设置方才有效;系统管理员不能为自己设置业务权限,也不能对自己经办的系统设置进行授权。建议由公司财务经理担任系统管理员之一。一般用户由系统管理员使用“用户管理”功能增加到系统中,由系统管理员设置其权限。负责在权限内经办和授权各项企业银行业务。另外,系统管理员也可具有业务权限,处理企业银行业务。业务管理:业务管理用于在网上企业银行上建立适应企业内部财务管理要求的业务操作规范。网上企业银行采用灵活的预设模式方式,实行“操作链”式管理,系统性地固化企业财务管理制度。客户可以自由定制企业内部财务授权管理模式,适应多种个性化财务管理需求。“操作链”形象地描述了企业内部财务管

8、理的岗位设置、业务分工和业务流程,同时规定了岗位上不同身份的人员的操作权限和关系。“操作链”上设经办岗位一个,设审批岗位一级或多级。经办岗位可以设置多人,人数不限制。经办人员负责所有其有权处理的业务的制单发起操作,经办人员之间是同一级别的并列关系。每一级审批岗位只可以设一名审批人员,审批人员负责其有权处理的业务的复核审批操作,不同级别审批岗位之间是上下级的关系,审批的权限依次增大,但是审批的流程必须依次进行,不得越级。备注:招行银企直联与招行企业网银共用一套用户管理、业务管理系统,后台业务处理系统也相同,是招行网上企业银行系统的两个不同接入渠道。用户、业务管理只能在企业网银上管理。CA(认证中

9、心):(Certification Authority 认证中心)是用来颁发数字证书的权威机构,它具有权威性、公正性和可靠性。其主要任务是受理数字证书的申请、签发及对数字证书的管理。在受理申请的同时,一般还会核对申请者的身份,以确保正确。数字证书:数字证书是用电子手段来证实一个用户的身份和对网络资源的访问权限。数字证书是由权威机构(CA)采用数字签名技术,颁发给用户,用以在数字领域中证实用户其本身的一种数字凭证。本系统的证书由招商银行CA签发,用于确认用户在招行企业银行系统中的身份。2 解决方案2.1 概述本系统支持两种直连方式: 前置机式:向本系统发送HTTP请求,实现和银行的直联。(具体请

10、参考目录前置机式) 嵌入式:以Win32动态链接库(DLL)和JAVA开发包(jar)的方式提供编程调用接口,企业可利用这些接口进行相应的二次开发。该方式支持VC、VB、C#、DELPHI、CB、PB、JAVA等开发工具。(具体请参考目录嵌入式) 结构示意图如上图所示,企业可以有自己完善的财务管理系统,公司内部资金调拨及对外支付先经过其内在的财务管理流程,再通过招行提供的编程接口把生成的指令直接提交到招行,招行根据该指令进行处理;企业的帐户信息、交易信息等也可以通过直联接口从招行获得。 2.2 功能 本系统目前提供的主要功能包括: 查询帐户信息 查询交易信息 支付/直接支付 集团支付/直接集团

11、支付 直接代发/代扣 内部转账 国内信用证 商务支付 接收各种通知信息 配置系统参数 委托贷款 定期业务 信用管理 人民币现金池 代理清算 外汇汇款 人行电子票据 招商网上电子票据 支付限额协议管理 资金余额管理大额划拨后续将根据市场需求,逐步添加其他业务。2.3 整体要求2.3.1 系统要求 硬件:建议Pentium133以上CPU,32MB RAM,至少256色(建议16位以上真彩)显示,100M以上的空闲硬盘空间。对数字证书卡用户,需要一个串口或USB口,用于安装数字证书卡驱动器; 操作系统:建议中文/英文WINDOWS 98/NT/2000/XP/2003,对英文WINDOWS,需要外

12、挂中文平台; 浏览器:必须安装Microsoft Internet Explorer 4.0以上的浏览器。本系统不支持Netscape的浏览器; 系统环境:建议使用一台电脑专门运行财务系统和直联系统,应确保系统中没有病毒、木马等有害程序。 2.3.2 技术要求 在正式使用直联系统前,请确认您所使用的财务系统和本系统的直联已在招行的测试环境下经过严格测试,并得到招行技术部门的认证; 请确认所使用的本系统的动态库均有招行的数字签名。 2.3.3 企业要求 开通招行网上企业银行; 与招行签订直联协议; 开通帐户查询、直接支付等所需业务,经办用户需要拥有招行签发的数字证书卡。 2.4 开发流程2.4.

13、1 准备 到所在地招行的分/支行开通招行企业银行; 到所在地招行的分/支行申请调试直联系统,银行分配用于测试的用户ID、密码等; 到招行网站下载本系统的开发工具包(包括开发包安装程序、本开发指南等); 运行开发包安装程序完成本系统的安装; 修改system32driversetchosts文件,增加两行数据:58.61.30.96 58.61.30.96 使用FBSdkManager.exe或者FBSdkTest.exe修改通讯方式的服务器为测试机,如下图所示: 通过提供的测试程序验证测试环境是否正确。(注:在测试环境,允许经办用户采用非证书卡方式登录) 2.4.2 开发 根据提供的编程接口,

14、在自己的财务系统上进行开发,实现所需要的业务功能(接口调用可参考提供的测试程序源代码); 对自己财务系统的业务功能进行测试(可根据提供的测试程序进行验证)。 2.4.3 使用 到所在地招行的分/支行签订直联协议; 到所在地招行的分/支行开通直接支付/账户查询等所需业务; 到招行网站下载本系统的正式发布包; 运行正式发布包安装程序完成本系统的安装; 在企业银行客户端,由企业系统管理员对业务模式进行设置; 可在自己财务系统上进行相应的直联操作,完成相关业务。(注:在真实环境,经办用户必须采用证书卡方式登录) 专线用户,且无DNS服务器时需要在系统HOST文件中增加如下域名的映射:, 3 前置机式3

15、.1 前置程序说明3.1.1 概述本系统支持HTTP/HTTPS/SOCKET请求,企业通过HTTP/HTTPS(POST方式)或SOCKET协议发送请求到前置程序FBSdkManager,并处理接收到的应答报文来实现和银行系统的交互。3.1.2 程序主界面说明1、登录信息:显示目前登录的用户信息。2、系统日志:显示系统操作日志等信息。3、提示栏:从左到右依次为:服务启动信息、用户登陆信息、系统启动时间信息。4、系统菜单:详情见菜单功能说明。5、菜单工具栏:从左至右依次为:启动服务、停止服务、登陆银行、退出银行、系统设置、银行通讯设置、查看系统日志、系统开发指南。3.1.3 菜单功能说明1、系

16、统系统设置:设置服务类型以及监听端口、设置是否记录业务报文日志、设置是否过滤企业端IP地址、设置程序是否自动锁定。设置服务类型以及监听端口设置是否记录业务报文日志:记录直联系统接收到的XML报文以及发送给企业财务软件系统的XML报文。设置是否过滤企业端IP地址:当启用IP过滤时,系统如发现请求报文来自允许访问列表之外的地址,将拒绝访问。设置程序是否自动锁定2、系统锁定程序:隐藏直联前置程序窗口,恢复窗口需要输入锁定密码。3、服务启动服务:启动服务前必须先设置服务类型以及监听端口。4、服务停止服务:必须在所有登陆用户退出银行系统后才能停止服务。5、登陆登陆银行:必须启动服务后才能登陆银行系统。6

17、、登陆退出银行:退出银行系统,选中登陆用户后该菜单才可操作。7、登陆银行通讯设置:设置登陆银行通讯参数,该参数必须在用户登录前设置。8、查看查看日志:日志分为两种:一种是业务报文日志,密文保存(可保存为明文);一种是系统操作日志,明文保存。9、查看查看业务模式:选中登陆用户后,可查看该用户下的业务模式信息(包括业务名称以及编号)。需要输入业务代码,业务代码在接口文档中有详细说明。10、帮助开发指南:显示招商银行银企直联系统对接开发指南。11、帮助关于银企直联:显示招商银行银企直联系统版本等信息。3.1.4 注意事项1、该系统实现了和银行自动重连的功能(当收到HTTP/HTTPS/SOCKET请

18、求时,如果和银行的连接已经断开,会自动进行重连)。2、请求和应答的报文都采用XML格式(请参考XML报文格式)。3、请求的报文需要在中增加,内容为登录的用户名。4、不支持下列接口的请求:登陆(Login)签退(Logout),系统参数设置(SetConfig),保持连接(SetAlive)释放缓冲区(FreeBuffer),XML 接口调用(XmlComm)。5、注意:只要能向运行前置程序FBSdkManager的机器发送HTTP/SOCKET请求就能和银行进行直联,因此必须保证该机器网络的安全性,和其它无关的机器在网络上做到安全隔离。3.2 通讯协议说明3.2.1 概述企业财务系统与直联前置

19、程序间通讯协议支持HTTP、HTTPS、SOCKET三种协议。3.2.2 HTTP/HTTPS协议企业端使用HTTP/HTTPS协议,通过POST方式提交XML报文数据到直联前置程序,并接收返回XML报文数据,完成报文数据交换。3.2.3 SOCKET协议 企业端使用SOCKET协议,通过以下数据包格式提交XML报文数据到直联前置程序,完成报文数据交换。通讯数据包格式为:8位字节报头(XML报文长度,左对齐,长度不够右补空格) + XML报文。范例:假如XML报文长度为1300个字节,通讯数据包格式为:“1300”(右边4个空格) + XML报文。3.3 XML报文格式3.3.1 概述本系统共

20、提供了三种XML报文格式,主要用于前置机与企业端数据交换以及嵌入式开发中的XML请求(XmlComm)函数。格式三在V1.7版本推出,新直连用户请使用格式三的标准进行开发,将来新功能都只支持格式三的报文格式。3.3.2 格式三请求报文: / encoding如果设置成BIG5表示繁体报文 / 函数名 2 / 数据格式(固定为2) / 用户自定义数据,应答报文会原样返回,建议字段名不要用6位的字母 / 自定义接口名称 Field-Value /自定义字段名称,字段值 /可以定义多个字段 / 可以定义多个接口 应答报文: / encoding和请求一致 / 函数名 2 / 数据格式(固定为2) /

21、 调用结果 / 错误消息 / 用户自定义数据 / 自定义接口名称 Field-Value /自定义字段名称,字段值 /可以定义多个字段 / 可以定义多个接口 备注:不同的交易接口名称不一样,一个请求报文中可以有多个不同的接口,接口名也可以重名。3.3.3 格式一请求报文: / encoding如果设置成BIG5表示繁体报文 / 函数名 0 / 数据格式(固定为0) / 用户自定义数据,应答报文会原样返回,建议字段名不要用6位的字母 / 概要信息 / 详细信息 应答报文: / encoding和请求一致 / 函数名 0 / 数据格式(固定为0) / 调用结果 / 错误消息 / 用户自定义数据 /

22、 概要信息 / 详细信息备注:1、概要信息为单条记录,明细信息支持多条记录,每条记录由多个字段组成,字段间用 ;(空格加分号)分开,各个字段格式为:字段名=数值。2、对于明细信息,如果是多条记录,每条记录用rn分开(rn是指回车符和换行符)。3.3.4 格式二请求报文: / encoding如果设置成BIG5表示繁体报文 / 函数名 1 / 数据格式(固定为1) / 用户自定义数据,应答报文会原样返回,建议字段名不要用6位的字母 / 概要信息 / 详细信息 / 详细信息数据 应答报文: / encoding和请求一致 / 函数名 1 / 数据格式(固定为1) / 调用结果 / 错误消息 / 用

23、户自定义数据 / 概要信息 / 详细信息 / 详细信息数据 备注:概要信息和详细信息的数据由多个字段组成,格式为数值。3.3.5 说明1、对于函数名(),除了用GetAccInfo表示GetAccInfoA,GetTransInfo表示GetTransInfoA,Payment代替DirectPayment和DirectGroupPayment,其他和编程接口的函数名保持一致。2、对于调用结果()错误消息(),和调用指定函数后的返回值和错误信息相同。3、概要和明细的具体信息请参考各个函数的说明。4、请求报文字段值中的&和&,<,应答报文要做相反的格式转换。格式三说明文档:见招商银

24、行银企直连接口说明书(XML格式三说明文档)格式一和格式二说明文档:见XML格式一和格式二报文说明文档3.4 调用频率3.4.1 说明请求调用间隔:本次请求调用与上次请求调用之间的时间差;调用频率控制按接口种类区别控制: 经办类请求:两次经办类请求最小调用间隔为1秒; 查询类请求:两次查询类请求最小调用间隔为2秒; 通知类请求:两次通知类请求最小调用间隔为5秒。1 当调用频率没有满足以上条件时(实际调用间隔小于最小调用间隔),系统默认会内部等待,等待时间为:最小调用间隔 实际调用间隔,等待完成后再处理该请求。2 当调用频率满足以上条件时(实际调用间隔大于或等于最小调用间隔),系统立即处理该请求

25、并转发到银行后台系统。 调用频率控制以登陆用户为单位,不同登陆用户之间不受影响。3.5 并发性能3.5.1 说明本系统支持多用户并发请求,同一用户的多个请求按照优先队列排队处理,为了避免请求等待时间过长,建议同一用户并发请求不要超过50个,登陆用户数没有限制。备注:一台电脑只能安装一个招行前置机,多台电脑允许安装多个招行前置机。4 嵌入式4.1 开发概述4.1.1 概述本系统提供了两种编程接口: C编程接口(用int _stdcall定义) JAVA编程接口(用public SdkResult定义) 所有编程接口都由本系统的FBSDK.dll文件提供,请确保您的系统正确加载了此文件。对JAVA

26、开发还提供了fbsdk.jar文件,编程接口封装在类FbSdkJni中,返回结果封装在类SdkResult中企业向招行提交的指令数据要求、招行向企业返回数据的定义等请参考数据接口手册(2.1版)。 4.1.2 数据格式调用本系统编程接口时,传入的指令和返回的结果,一般采用以下的数据格式: 以0结束; 支持多条记录,每条记录用rn分开(rn是指回车符和换行符); 每条记录由多个字段组成,字段间用 ;(空格加分号)分开,各个字段格式为:字段名=数值; 字段之间没有顺序关系; 如果某个字段对应的数值为空,则该字段可以省略; 字段如果对应日期,格式为:yyyymmdd;对应时间,格式为:hhmmss;

27、对应日期+时间,格式为:yyyymmddhhmmss; 字段如果对应金额,格式为:nnnnnnnnnnnnn.nn,整数部分最多13位,小数部分最多2位。 4.1.3 接口返回值 C编程接口采用统一的返回编码(整数):0:成功;-1:提交主机失败;-2:执行失败;-3:数据格式错误;-4:尚未登录系统;-5:请求太频繁;-6:不是证书卡用户;-7:用户取消操作;-9:其它错误;当返回编码不是0时,函数参数中的szErrorMsg有效,表示具体错误信息(字符串szErrorMsg以0结束)。当返回编码不是0时,可通过SetAlive函数来判断和银行服务器的连接是否出现错误。 Java编程接口返回

28、结果封装在类SdkResult中。下面是类SdkResult接口函数的说明: / 判断接口调用是否有正确(true:正确;false:错误) public boolean isError(); / 获得错误ID(编码和C编程接口一致) / 判断错误ID是否为0,等同于调用isError(); public int getErrorID(); / 获得错误信息 public String getErrorMessage(); / 获得返回结果数据 public String getData(); 4.2 多线程调用4.2.1 概述1.3.0.0以前的版本已经支持多线程调用,但只允许登录一个用户,

29、所有线程都共用该用户的身份进行业务处理。为了支持多个用户登录,不同用户可以各自进行自己的业务处理,1.3.0.0及以后的版本对多线程的支持进行了改进。如果您的系统使用了多线程,请务必仔细阅读本文。4.2.2 调用方法 单用户单线程(只登录一个用户,所有接口调用都在一个线程里完成) 主登录后,直接调用所需接口,不需要任何特别处理 单用户多线程(只登录一个用户,多个线程进行接口调用) 在一个线程中进行主登录;如:Login(, 0, szErrorMsg); 登录后通过GetSysInfo取得用户登录名;如:假设这里取到的用户登录名为SH01 在其它线程进行线程登录,实现该用户的共享连接;如Log

30、in(LGNTYP=-2 ;LGNNAM=SH01, 0, szErrorMsg); 登录后,各个线程调用各自所需的接口进行业务处理。 多用户多线程(登录多个用户,每个用户有多个线程进行接口调用) 各个用户在各自的线程进行主登录; 每个用户的其它线程进行线程登录,实现各个用户的共享连接; 登录后,各个线程调用各自所需的接口进行业务处理。 4.2.3 调用说明1、主登录必须用同步的方法进行调用(线程登录不需要同步)。2、主登录的线程:该线程以后只能进行主登录,不允许进行线程登录。3、主登录的线程:该线程可以调用Logout方法,调用后,和它共享连接的的所有线程自动退出登录。4、主登录的线程调用主

31、登录重新登录后,和它共享连接的所有线程必须重新调用线程登录。5、线程登录时,必须确保该线程已经创建了(如果线程是通过类实现的,不要在类的构造函数中调用,因为这时候该线程还未真正创建)。6、线程登录的线程:该线程以后只能进行线程登录,不允许进行主登录。7、线程登录的线程:该线程不允许调用Logout方法。8、线程登录的线程:进行业务处理时,主登录的线程必须还没有结束。9、不支持一个线程登录多个用户,一个线程只能登录一个用户(如果在一个线程创建多个FBSDK实例,这些FBSDK实例会共享同一个用户连接)。10、如果登录多个证书卡用户,这些用户必须关联同一张证书卡。11、共享同一用户连接的线程和银行

32、端只保持一个连接,银行端今后可能会对同一用户多个连接进行控制。因此不要在多个线程以非线程登录的方式登录同一用户,这样这些线程就不是共享同一用户连接,而是各自独立地连接到银行端。12、如果用户在1.3.0.0之前的版本使用了单用户多线程功能,要升级到1.3.0.0及以后的版本,请按照上文给出的调用方法进行相应的修改。4.2.4 术语定义主登录:使用自动登录、重登录、手工登录等方式调用Login。线程登录:使用线程登录的方式调用Login。4.3 编程接口4.3.1 XML请求(XmlComm)int _stdcallXmlComm(const char *szRequest, char *szR

33、esponse, int *iLength, char *szErrorMsg);public SdkResultXmlComm(String sRequest);说明:XML接口调用,通过该接口可以实现其他接口的调用,报文格式请参考XML报文格式。参数:inszRequest: sRequest:XML请求报文。outszResponse:XML应答报文。 该参数为指向指针的指针,数据缓冲区在DLL中创建,只要接口调用成功,就必须调用FreeBuffer函数释放该缓冲区。 outiLength:XML应答报文长度。只有大于0时,szRespond才有效。outszErrorMsg:错误信息。

34、缓冲区必须不小于256个字节。返回值:接口返回值要求:1.5.0.0及之后版本4.3.2 系统函数4.3.2.1 Loginint _stdcallLogin(const char *szData, int iLength, char *szErrorMsg);public SdkResultLogin();public SdkResultLogin(String sData);说明:登录系统。该接口封装了安全通讯管道的建立以及企业用户的身份认证。其它接口函数如果没有特别说明,都要成功登录后才能调用。参数:inszData: sData:登录信息。只有一条记录(数据格式),由以下几个字段组成:

35、LGNTYP:登录方式(可空)0:指定用户名/密码登录;-1:重登陆;-2:线程登录;其它:显示登录对话框手动登录LGNNAM:登录用户名LGNPWD:登录密码ICCPWD:卡密码CORKEY:企业键值(可空,保留,不需要)iniLength:保留字段 0:建议值-1:重登录,和LGNTYP=-1相同,如果LGNTYP有值,忽略该字段(只是为了兼容以前的版本,建议不要通过该字段实现重登录功能)outszErrorMsg:错误信息。缓冲区必须不小于256个字节。返回值:接口返回值要求:1.1.0.0及之后版本支持手工登录1.3.0.0及之后版本支持手工登录;自动登录;重登录;线程登录备注:系统提

36、供以下几种登录方式:登录方式LGNTYPLGNNAMLGNPWDICCPWD备注自动登录0非空非空可空不显示登录对话框,以传入的登录信息直接登录 ICCPWD非空时:以证书卡用户身份登录 范例:Login(LGNTYP=0 ;LGNNAM=SH01 ;LGNPWD=88889999 ;ICCPWD=88889999, 0, szErrorMsg); ICCPWD为空时:以非证书卡用户身份登录 范例:Login(LGNTYP=0 ;LGNNAM=SH02 ;LGNPWD=88889999, 0, szErrorMsg); 重登录-1忽略忽略忽略未成功登录过系统:显示登录对话框,用户输入登录信息进

37、行登录。 成功登录过系统:不显示登录对话框,以上次登录的登录信息自动登录 范例:Login(LGNTYP=-1, 0, szErrorMsg); / 方法一,建议 范例:Login(, -1, szErrorMsg); / 方法二,不建议 线程登录-2非空忽略忽略同一用户共享连接。如果该用户尚未登录,返回错误。参考多线程调用范例:Login(LGNTYP=-2 ;LGNNAM=SH01, 0, szErrorMsg); 手工登录忽略忽略忽略忽略显示登录对话框,用户输入登录信息进行登录 范例:Login(, 0, szErrorMsg); 4.3.2.2 Logoutint _stdcallLo

38、gout(char *szErrorMsg);public SdkResultLogout();说明:退出登录。参数:outszErrorMsg:错误信息。缓冲区必须不小于256个字节。返回值:接口返回值要求:1.1.0.0及之后版本4.3.2.3 SetConfigint _stdcallSetConfig(int iType, char *szErrorMsg);public SdkResultSetConfig(int iType);说明:系统参数设置。参数:iniType:设置类型。包括以下几种类型:1:修改通讯参数。可以在未登录的情况下修改2:修改登陆名。只有登录后才能修改3:修改联

39、机登陆密码。只有登录后才能修改4:修改数字证书卡密码。只有以证书卡方式登录后才能修改5:查看证书。只有以证书卡方式登录后才能查看outszErrorMsg:错误信息。缓冲区必须不小于256个字节。返回值:接口返回值要求:1.2.0.0及之后版本4.3.2.4 GetNewNoticeint _stdcallGetNewNotice(char *szData, int *iLength, char *szErrorMsg);public SdkResultGetNewNotice();说明:取新的通知。参数:outszData:通知信息数据指针。缓冲区必须不小于64K,每条通知作为一条记录(数据

40、格式),具体格式请参考招商银行直连接口说明书中1.4取新通知的响应报文接口NTQNTCGTZ,他包含了到账、付款交易通知和直接支付结果通知两种格式。outiLength:通知信息数据长度。只有大于0时,szData才有效。outszErrorMsg:错误信息。缓冲区必须不小于256个字节。返回值:接口返回值要求:1.1.0.0及之后版本备注:1、本系统目前返回的通知共有三种:直接支付结果通知(NCDRTPAY)、到账通知(NCCRTTRS)和付款通知(NCDBTTRS)。2、只能取到新的通知,已经取过的通知不会再次发送。3、一次调用只会返回一定条数的通知,可反复调用该接口,直到取完所有通知。4

41、、每笔到账/付款通知都会对应一笔交易信息,可通过通知信息中的帐号(ACCNBR)+交易日(TRSDAT)+流水号(SEQNBR),和交易信息中该帐号的交易日(ETYDAT)+流水号(REFNBR)进行关联。范例:int iRet = 0;int iLength = 0;do char szData64*1024 = 0; char szErrorMsg256 = 0; iRet = GetNewNotice(szData, &iLength, szErrorMsg);while (0 != iRet) & (0 iLength);4.3.2.5 GetSysInfoint _stdcallGe

42、tSysInfo(const char *szQuery, char *szData, int *iLength, char *szErrorMsg);public SdkResultGetSysInfo(String sQuery);说明:取系统信息。参数:inszQuery: sQuery:查询条件。只有一条记录(数据格式),由一个字段组成:SYSTYP:系统信息类别(非空,目前只支持取用户信息(USRINF)outszData:系统信息数据。可能包含多条系统信息,每条系统信息一条记录(数据格式)。 该参数为指向指针的指针,数据缓冲区在DLL中创建,只要接口调用成功,就必须调用FreeBu

43、ffer函数释放该缓冲区。 目前只有取用户信息,返回一条记录,包含以下几个字段:LGNNAM:用户登录名USRNAM:用户姓名LGNTIM:用户上次成功登录时间(日期+时间)USRTYP:用户类型(P:系统管理员;S:普通用户)CORTYP:用户所属公司的类型(G:集团企业;N:普通企业)CORNAM:用户所属公司名称GRPNAM:用户所属集团公司(对普通企业,和CORNAM一致)ICCLGN:是否证书卡用户(Y:是;N:不是)ICCNBR:证书卡卡号(对非证书卡用户无效)outiLength:系统信息数据长度。只有大于0时,szData才有效。outszErrorMsg:错误信息。缓冲区必须

44、不小于256个字节。返回值:接口返回值要求:1.3.0.0及之后版本范例:char *szData = NULL;int iLength = 0;char szErrorMsg256 = 0;GetSysInfo(SYSTYP=USRINF, &szData, &iLength, szErrorMsg);4.3.2.6 ListModeint _stdcallListMode(const char *szQuery, char *szData, int *iLength, char *szErrorMsg);public SdkResultListMode(String sQuery);说明:

45、查询可经办的业务模式信息。参数:inszQuery: sQuery:查询条件。只有一条记录(数据格式)由一个字段组成:BUSCOD:业务代码(非空,具体请参考招商银行直连接口说明书中附录A.4 业务代码)outszData:查询业务模式结果数据的指针。缓冲区必须不小于64K,每个业务模式作为一条记录(数据格式),由两个字段组成:BUSMOD:业务模式编号MODALS:业务模式名称outiLength:业务模式结果数据长度。只有大于0时,szData才有效。outszErrorMsg:错误信息。缓冲区必须不小于256个字节。返回值:接口返回值要求:1.2.0.0及之后版本范例:int iLeng

46、th = 0;char szData64*1024 = 0;char szErrorMsg256 = 0;/ 查询代发工资的可经办业务模式ListMode(BUSCOD=N03010, szData, &iLength, szErrorMsg); 4.3.2.7 SetAliveint _stdcallSetAlive(char *szErrorMsg);public SdkResultSetAlive();说明:设置客户端和银行端保持连接。参数:outszErrorMsg:错误信息。缓冲区必须不小于256个字节。返回值:接口返回值要求:1.2.1.0及之后版本备注:1、1.3.0.0的版本可

47、以通过定时(如每隔10分钟)调用该接口和银行端保持连接,否则如果30分钟内没有进行任何业务请求,将会自动退出登录。2、1.2.0.1、1.3.1.0及以后的版本,系统内部已经实现了和银行端一直保持连接,不会自动退出登录。3、可用于测试和银行端的连接是否正常(返回成功表示正常;其它情况表示不正常,需要重新登录)。因此当业务请求失败时,可以通过该方法判断是否由于和银行端连接出现异常。范例:int iLength = 0;char szData64*1024 = 0;char szErrorMsg256 = 0;int iRet = GetAccInfo(深圳, 1280095810099, szD

48、ata, &iLength, szErrorMsg);if (0 != iRet) iRet = SetAlive(szErrorMsg); / 业务请求失败,判断和银行端连接是否异常 if (0 != iRet) Login(LGNTYP=-1, 0, szErrorMsg); / 和银行端连接异常,重登录 4.3.2.8 FreeBufferint _stdcallFreeBuffer(const char *szBuf, char *szErrorMsg);无JAVA接口说明:用于释放在本DLL创建的数据缓冲区。可以在未登录的情况下调用参数:inszBuf:数据缓冲区指针。outszEr

49、rorMsg:错误信息。缓冲区必须不小于256个字节。返回值:接口返回值要求:1.1.0.0及之后版本备注:建议对于需要本DLL创建的数据都先初始化为NULL,调用相关接口后,不论成功与否,都调用该接口释放数据缓冲区,避免内存泄漏。范例:char *szData = NULL; /先初始化为NULL int iLength = 0;char szErrorMsg256 = 0;int iRet = GetTransInfoA(BBKNBR=75 ;ACCNBR=1280095810099 ;BGNDAT=20041001 ;ENDDAT=20041011, &szData, &iLength,

50、 szErrorMsg);if (0 = iRet) / 业务处理. FreeBuffer(szData, szErrorMsg); / 则不论成功与否,都可以调用该接口 4.3.3 账户信息4.3.3.1 ListAccountint _stdcallListAccount(const char *szQuery, char *szData, int *iLength, char *szErrorMsg);public SdkResultListAccount(String sQuery);说明:查询可查询/可经办的账户列表。参数:inszQuery: sQuery:查询条件。只有一条记录(

51、数据格式),由两个字段组成:BUSCOD:业务代码(非空,具体请参考招商银行直连接口说明书中附录A.4 业务代码)BUSMOD:业务模式编号(非空,某个业务有哪些可经办的业务模式,可通过ListMode获得。账务查询(BUSCOD=N01010)时忽略该项)outszData:查询账户结果数据的指针。缓冲区必须不小于64K,每个帐户作为一条记录(数据格式),具体格式请参考招商银行直连接口说明书中2.1 可查询/可经办的账户列表查询输出接口NTQACLSTZ。outiLength:账户结果数据长度。只有大于0时,szData才有效。outszErrorMsg:错误信息。缓冲区必须不小于256个字

52、节。返回值:接口返回值要求:1.1.0.0及之后版本范例:int iLength = 0;char szData64*1024 = 0;char szErrorMsg256 = 0;/ 帐务查询ListAccount(BUSCOD=N01010, szData, &iLength, szErrorMsg); / 代发工资的00001业务模式下可经办的帐户列表ListAccount(BUSCOD=N03010 ;BUSMOD=00001, szData, &iLength, szErrorMsg); 4.3.3.2 GetAccInfoint _stdcallGetAccInfo(const c

53、har *szC_BbkNbr, const char *szAccNbr, char *szData, int *iLength, char *szErrorMsg);public SdkResultGetAccInfo(String sC_BbkNbr, String sAccNbr);说明:查询账户详细信息。(只是为了兼容以前版本,建议调用GetAccInfoA)参数:inszC_BbkNbr: sC_BbkNbr:账户所在分行名称。以0结束,如深圳。具体请参考招商银行直连接口说明书中附录A.1 招行分行。inszAccNbr: sAccNbr:账号。以0结束。outszData:账户详细信息数据的指针。缓冲区必须不小于64K,只有一条记录(数据格式),具体格式请参考招商银行直连接口说明书中2.2 查询账户详细信息输出接口NTQACINFZ。outiLength:账户详细信息数据长度。只

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!