财政国库电子支付电子凭证库接口说明043000.docx
《财政国库电子支付电子凭证库接口说明043000.docx》由会员分享,可在线阅读,更多相关《财政国库电子支付电子凭证库接口说明043000.docx(127页珍藏版)》请在冰豆网上搜索。
财政国库电子支付电子凭证库接口说明043000
财政国库电子支付
电子凭证库接口说明
广州江南科友科技股份有限公司
2013年03月
修订版历史
日期和代码版本
版本
说明
作者
2012-7-30
EVoucher2012-09-30-00
1.0
初稿
曾明军
2012-11-13
EVoucher2012-09-30-02
1.1
客户端:
1.(新增)清除U-KEY缓存ClearPinCache
2.(新增)客服端不带位置签名signWithoutPosition
3.(新增)验证不带位置的签名verfiySignWithoutPosition
服务端:
1.(新增)服务器端不带位置签名signWithoutPosition
2.(新增)验证不带位置的签名verfiySignWithoutPosition
3.(新增)查询日志信息接口queryVoucherLogs
4.(新增)批量查询凭证发送状态batchQuerySentVoucherStatus
5.(新增)业务系统与凭证库对账getVoucherStatement
6.(新增)撤销不带位置签名cancelSignWithoutPosition
雷瑞恒
2012-11-30
EVoucher2012-09-30-03
服务端:
1.(新增)发送全版本凭证sendVoucherFullSigns
2.(新增)批量查询发送凭证状态batchQuerySentVoucherStatus
2013-03-19
EVoucher2013-04-30-00
2.0
客户端:
1.(新增)选择印章SelectStampId
2.(新增)异常捕获GetLastErr
3.(新增)获取证书接口DlgSelectCertId
服务端:
1.(新增)查询凭证盖章列表queryVoucherSignStampPositions
2.(新增)指定日期读取凭证readVoucherByDate
3.(新增)发起消息对账startMsgStatement
4.(新增)查询消息对账凭证列表
queryMsgStatementVoucherNos
5.(新增)指定凭证号查询消息对账单
queryMsgStatementByVoucherNo
6.(新增)查询错误的消息对账凭证列表
queryErrorMsgStatementVoucherNos
7.(新增)重发消息reSendMessage
其他:
调整部分接口与代码参数不匹配,更新服务端异常代码
2013-04-30-00
EVoucher2013-06-15-00
3.0
服务端:
1.(新增)业务系统之间数据请求功能requestData
2.(新增)业务系统之间数据发送sendData
3.(新增)获取数据getData
4.(新增)指定机构查询凭证状态
queryVoucherStatusByOrgType
5.(新增)查询凭证库被篡改的电子凭证
queryTamperedVoucherNOs
2013-06-15
EVoucher2013-06-15-03
客户端:
1、(新增)验证UkeyPin码接口VerifyPin
2、(新增)获取当前选择证书的CN接口GetCurCertCN
林因
2013-10-30
EVoucher2013-12-30-00
4.0
服务端:
1、(新增)指定日期查询被退回凭证readReturnVoucherByDate
2、(新增)批量查询被退回的凭证号
batchQueryVoucherNosByBackStatus
客户端:
1、(新增)获取操作人证书列表GetOperatorCertsList
雷瑞恒
2014-5-20
EVoucher2014-04-30-00
5.0
服务端:
1、(新增)获取签章、签名中的SN、DNgetSnInfo
林因
1电子凭证库接口说明
财政国库无纸化支撑系统(简称:
无纸化支撑系统)需要支持财政与人行(商业银行)交互电子凭证数据全流程管理,主要包括:
1、对全流程电子凭证进行凭证分类、签名、验签、签章及验章操作,并支持全流程电子数据版本化管理。
2、实现财政与人行和商业银行系统间进行电子凭证数据的安全传输。
为了简化业务系统实现以上需求,无纸化支撑系统将业务系统对电子凭证的管理进行分析整理后,归纳出对电子凭证库的接口需求,分为电子凭证库客户端接口和电子凭证库服务端接口两大类:
1、电子凭证库客户端接口主要提供凭证盖章、查看及打印可视化的操作。
2、电子服务端接口主要提供凭证保存及发送等后台操作。
以下分客户端接口和服务端接口分别阐述相关接口,并提供部分调用示例供财政、人行、商业银行业务系统参考开发。
2电子凭证库客户端接口
本章节描述了电子凭证库客户端的接口,调用方式采用ocx调用。
调用接口异常时,需要调用GetLastErr接口获取异常信息并反馈给前端用户。
2.1设置电子凭证服务地址
2.1.1功能说明
设置电子凭证服务地址,用于与电子凭证服务器通讯。
电子凭证库客户端为简化业务系统调用的步骤,封装了如获取电子凭证模板、根据凭证号读取凭证等共用的查询操作,而此类操作需要电子凭证库客户端根据业务系统设置的地址访问电子凭证库服务。
业务系统调用电子凭证库客户端时,第一步应设置电子凭证库与电子印章的服务地址。
由于业务系统的客户端所处的网段不同,在设置电子凭证库与电子印章服务地址时需要根据IP地址适配。
若业务系统客户端IP地址为外网网段,应设置电子凭证库与电子印章服务的外网地址;
若业务系统客户端IP地址为内网网段,应设置电子凭证库与电子印章服务的内网地址;
2.1.2函数名
intSetEvoucherServiceUrl(Stringurl);
2.1.3输入参数
序号
英文名
数据类型
参数说明
1
url
String
电子凭证服务器url
http:
//地址:
端口/realware/services/OCXService?
wsdl
2.1.4输出
序号
英文名
数据类型
参数说明
1
Int
0成功、大于0错误编码
2.1.5代码示例
StringevoucherUrl=null;//电子凭证库服务地址
StringestampUrl=null;//电子印章服务地址
Inta=0;//返回结果
//读取业务系统客户端IP地址,并根据网段判断IP地址是内外网
booleanisInner=this.decisionNetwork(客户端IP);
If(isInner){
//客户端为内网地址,获取电子凭证库与电子印章内网地址
evoucherUrl=this.getInnerEVoucherUrl();
estampUrl=this.getInnerEStampUrl();
}else{
//客户端为外网地址,获取电子凭证库与电子印章外网地址
evoucherUrl=this.getOuterEVoucherUrl();
estampUrl=this.getOuterEStampUrl();
}
//设置电子凭证库服务地址
a=OCX.SetEvoucherServiceUrl(evoucherUrl);
if(a!
=0)
thrownewRuntimeException(“初始化电子凭证库服务地址失败,”+OCX.GetLastErr());
//设置电子印章服务地址
a=OCX.SetEstampServiceUrl(estampUrl);
if(a!
=0)
thrownewRuntimeException(“初始化电子印章库服务地址失败,”+OCX.GetLastErr());
//OCX初始化
//OCX其他操作
2.2设置电子印章服务地址
2.2.1功能说明
设置电子印章服务器地址,用于与电子印章服务器通讯。
电子凭证库客户端签章与验章操作都需要访问电子印章服务,若通过电子凭证库服务访问电子印章,大大的降低了客户端签章与验章的性能。
采用电子凭证库客户端直连电子印章服务的模式使签章、验章更加的高效。
2.2.2函数名
intSetEstampServiceUrl(Stringurl);
2.2.3输入参数
序号
英文名
数据类型
参数说明
1
url
String
电子印章服务器url
吉大印章:
http:
//地址:
端口
科友印章:
http:
//地址:
端口/realware/services/AsspEStampService
2.2.4输出
序号
英文名
数据类型
参数说明
1
Int
0成功、大于0错误编码
2.3生成电子签章报文
2.3.1功能说明
业务系统客户端调用此接口生成电子签章结果报文传至服务端,再由业务系统服务端调用电子凭证服务接口“写入客户端签章的凭证”保存电子凭证,完成客户端电子签章操作。
客户端签章依赖UKEY,电子印章类型分为公章与私章两类。
私章烧制入UKEY,公章需要与UKEY的证书绑定。
2.3.2函数名
StringGetVoucherStamp(StringcertID,StringadmDivCode,intstYear,StringvtCode,Stringstamp,StringvoucherXML)
2.3.3输入参数
序号
英文名
数据类型
参数说明
1
certID
String
用户证书ID(登录用户证书id)
2
admDivCode
String
行政区划,最大长度15位
3
stYear
int
业务年度,4位数字,2012
4
vtCode
String
凭证类型,4位字符,参见报文规范
5
stamp
String
位置信息
凭证签名(章)位置报文
6
voucherXML
String
客户端待签名(章)凭证报文
2.3.4输出参数
序号
英文名
数据类型
参数说明
1
String
凭证签名(章)结果报文
2.4生成电子签名报文
2.4.1功能说明
业务系统客户端调用此接口获取电子签名结果报文传至服务端,再由业务系统服务端调用电子凭证服务接口“写入客户端签名的凭证”保存电子凭证,完成客户端电子签名操作。
2.4.2函数名
StringGetVoucherSign(stringcertID,stringadmDivCode,intstYear,stringvtCode,stringcertInfo,stringvoucherXML);
2.4.3输入参数
序号
英文名
数据类型
参数说明
1
certID
String
用户证书ID(登录用户证书id)
2
admDivCode
String
行政区划,最大长度15位
3
stYear
int
业务年度,4位数字,2012
4
vtCode
String
凭证类型,4位字符,参见报文规范
5
certInfo
String
凭证签名(章)位置报文
6
voucherXML
String
客户端待签名(章)凭证报文
2.4.4输出参数
序号
英文名
数据类型
参数说明
1
String
凭证签名(章)结果报文(NULL或者长度为0,表示失败)
2.5凭证显示控件(OCX)
查询打印控件用于实现对电子凭证的可视化显示打印。
包括控件初始化、加载凭证和设置需要显示的凭证3个主要接口;
加载凭证:
增加不带报文的接口。
辅助接口包括凭证打印接口。
2.5.1初始化
2.5.1.1功能说明
用于初始化显示控件,从电子凭证服务端加载电子凭证的模板。
2.5.1.2函数名
intInitialize(StringcertID,StringadmDivCode,intstYear,StringvtCode,Stringreserver1,intdisplayMode,intParamValue,intdefaultPage);
2.5.1.3输入参数:
序号
英文名
数据类型
参数说明
1
certID
String
用户证书ID(登录用户证书id)
2
admDivCode
String
行政区划,最大长度15位
3
stYear
int
业务年度,4位数字
4
vtCode
String
凭证类型,4位字符,参见报文规范
5
reserver1
String
保留参数,传入”0”
6
displayMode
int
显示模式:
1.列表模式2.单页模式
7
ParamValue
int
列表模式下的显示行列数:
(输入2即为2行2列显示)
8
defaultPage
int
默认显示页(联)(最好默认为0)
2.5.1.4输出参数:
序号
英文名
数据类型
参数说明
1
Int
0成功、大于0错误编码
2.5.2加载电子凭证
2.5.2.1功能说明
添加要显示凭证信息用于客户端程序,调用此方法添加需要显示的签章凭证信息,逐笔添加。
2.5.2.2函数名
intAddVoucher(StringvoucherNo,StringxmlBody);
2.5.2.3输入参数
序号
英文名
数据类型
参数说明
1
voucherNo
String
凭证编号
2
xmlBody
String
需要显示的凭证信息,具体格式参考:
《电子支付安全支撑控件电子凭证报文规范》
2.5.2.4输出参数
序号
英文名
数据类型
参数说明
1
int
0成功、大于0错误编码
2.5.3指定凭证号加载电子凭证
2.5.3.1功能说明
不带报文的接口,接口自动从服务器加载凭证
对于回单不做全版本验证(只验证最新数据的完整性),显示时加载回单的原文进行展现。
2.5.3.2函数名
intAddVoucherfromServer(StringvoucherNo);
2.5.3.3输入参数
序号
英文名
数据类型
参数说明
1
voucherNo
String
凭证单号
2.5.3.4输出参数
序号
英文名
数据类型
参数说明
1
int
0成功、大于0错误编码
2.5.4指定原文加载电子凭证
2.5.4.1功能说明
可将从后台下载的凭证(调用后台readVoucherAgain得到的报文)直接加载到OCX中。
2.5.4.2函数名
intAddVoucherXmls(StringXmlVouchers,intbUpdatefromVoucher);
2.5.4.3输入参数
序号
英文名
数据类型
参数说明
1
XmlVouchers
String
凭证原文,具体格式参考:
《电子支付安全支撑控件电子凭证报文规范》
2
bUpdatefromVoucher
int
是否从凭证库重新加载凭证,1代表是,0代表否
2.5.4.4输出参数
序号
英文名
数据类型
参数说明
1
int
0成功、大于0错误编码
2.5.5显示指定的凭证(凭证编号)
2.5.5.1功能说明
定位到显示的凭证,OCX自动验签(章),取章显示。
2.5.5.2函数名
intSetCurrentVoucher(StringvoucherNo);
2.5.5.3输入参数
序号
英文名
数据类型
参数说明
1
voucherNO
String
凭证号
2.5.5.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功、大于0错误编码
2.5.6显示指定的凭证(凭证索引)
2.5.6.1功能说明:
本接口已不推荐使用。
定位到显示的凭证,OCX自动验签(章),取章显示。
2.5.6.2函数名
intdisplayVoucherByIndex(intvoucherIndex);
2.5.6.3输入参数
序号
英文名
数据类型
参数说明
1
voucherIndex
int
凭证索引(索引号从0开始)
2.5.6.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.7打印凭证(凭证号)
2.5.7.1功能说明
打印加载到显示控件的凭证。
2.5.7.2函数名
intPrintVoucherByNo(StringvoucherNo,intpageNo);
2.5.7.3输入参数
序号
英文名
数据类型
参数说明
1
voucherNo
String
凭证编号
2
pageNo
int
凭证联
2.5.7.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.8打印凭证(按凭证索引号)
2.5.8.1功能说明
打印加载到显示控件的凭证。
2.5.8.2函数名
IntPrintVoucherByIndex(intvoucherIndex,intpageNo);
2.5.8.3输入参数
序号
英文名
数据类型
参数说明
1
voucherIndex
int
凭证索引
2
pageNo
int
凭证联
2.5.8.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.9打印凭证(按索引范围批量打印)
2.5.9.1功能说明
打印加载到显示控件的凭证。
2.5.9.2函数名
intPrintVoucherByIndexRange(intbeginIndex,intendIndexintpageNo);
2.5.9.3输入参数
序号
英文名
数据类型
参数说明
1
beginIndex
int
起始凭证索引
2
endIndex
int
结束凭证索引
3
pageNo
int
凭证联
2.5.9.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.10打印当前显示的凭证
2.5.10.1功能说明
打印当前ocx中显示的凭证
2.5.10.2函数名
intPrintCurrentVoucher(intbShowPrintSettingDialog)
2.5.10.3输入参数
序号
英文名
数据类型
参数说明
1
bShowPrintSettingDialog
Int
是否显示打印提示框,1代表是,0代表否
2.5.10.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.11清空凭证列表
2.5.11.1功能说明
清除控件中的数据,保留模板。
2.5.11.2函数名
voidResetContent();
2.5.12移除指定凭证(凭证编号)
2.5.12.1功能说明
删除控件中某笔凭证数据。
2.5.12.2函数名
intremoveVoucherByNo(StringVoucherNo);
2.5.12.3输入参数
序号
英文名
数据类型
参数说明
1
voucherNo
String
凭证编号
2.5.12.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.13移除指定凭证(凭证索引)
2.5.13.1功能说明
删除控件中某笔凭证数据。
2.5.13.2函数名
intremoveVoucherByIndex(intvoucherIndex);
2.5.13.3输入参数
序号
英文名
数据类型
参数说明
1
voucherIndex
int
凭证索引
2.5.13.4输出参数
序号
英文名
数据类型
参数说明
1
int
0成功大于0失败
2.5.14查看凭证的上一联
2.5.14.1功能说明
实现查看凭证的上一联。
2.5.14.2函数名
intPageUp(void);
2.5.14.3输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.15查看凭证下一联
2.5.15.1功能说明
实现查看凭证下一联
2.5.15.2函数名
intPageDown(void);
2.5.15.3输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.16获取凭证联数
2.5.16.1功能说明
获取凭证总联数
2.5.16.2函数名
intGetPageCount(void);
2.5.16.3输出参数
序号
英文名
数据类型
参数说明
1
int
联数
2.5.17获取加载的凭证总数
2.5.17.1功能说明
获取当前OCX已加载的凭证总数
2.5.17.2函数名
intGetVoucherCount(void)
2.5.17.3输入参数
无
2.5.17.4输出参数
序号
英文名
数据类型
参数说明
1
int
凭证总数
2.5.18显示下一条凭证
2.5.18.1功能说明
跳转显示OCX缓存中的下一条凭证
2.5.18.2函数名
intGotoNextVoucher(void)
2.5.18.3输入参数
无
2.5.18.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失败
2.5.19显示上一条凭证
2.5.19.1功能说明
跳转显示OCX缓存中的上一条凭证
2.5.19.2函数名
intGotoPrevVoucher(void)
2.5.19.3输入参数
无
2.5.19.4输出参数
序号
英文名
数据类型
参数说明
1
Int
0成功大于0失