税控开票服务器组件接口规范(标准版)税控项目组2015年9月目录目录 (2)第一章概述 (3)1.接口概述 (3)2.适用范围 (3)第二章接口调用方式 (4)1.本地ActiveX组件调用 (4)2.本地DLL调用 (6)第三章接口定义 (6)1.参数设置 (6)2.税控钥匙信息查询 (7)3.发票开具 (9)4.发票作废 (15)5.发票查询 (17)6.发票领购信息查询 (20)7.发票打印 (22)8.页边距设置 (23)9.查询当前未开票号 (24)10.发票领购信息分发 (26)11.发票领购信息退回 (27)第一章概述1. 接口概述企业核心业务系统通过接口实现与税控开票服务器的通信,完成发票管理、发票开具和税控服务器信息查询功能。
接口根据调用方式的不同分为远程Servlet 接口和本地ActiveX组件接口。
企业核心业务系统远程Servlet接口税控服务器税控开票服务器本地ActiveX组件开票终端2. 适用范围本接口规范仅适用于开票端通过组件接口ActiveX控件和Servlet接口方式访问税控开票服务器。
第二章接口调用方式本地接口提供ActiveX控件和DLL两种调用方式,接口列表见下表。
序号接口ID 接口说明其它说明1 20001 参数设置本地接口2 20002 税控钥匙信息查询本地接口3 10008 发票开具本地接口4 10009 发票作废本地接口5 10010 发票查询本地接口6 10005 发票领购信息查询本地接口7 20004 发票打印本地接口8 20003 打印页边距设置本地接口9 10004 查询当前未开票号本地接口10 10006 发票领购信息分发本地接口11 10007 发票领购信息退回本地接口1. 本地ActiveX组件调用⏹ActiveX组件文件名:NISEC_SKSCX.ocx⏹ActiveX组件GUID:CLASSID="clsid: 003BD8F2-A6C3-48EF-9B72-ECFD8FC4D49F"⏹函数定义:String Operate(string sInputInfo);参数:sInputInfo 输入XML信息返回值:返回结果XML字符串⏹调用示例:<html><head><title>ActiveX组件调用示例</title><OBJECT ID=skCLASSID="clsid:003BD8F2-A6C3-48EF-9B72-ECFD8FC4D49F"codebase="NISEC_SKSCX.ocx#version=1,0,0,1"></OBJECT><script language="javascript">function SetParameter(){var sInputInfo ="<?xml version=\"1.0\" encoding=\"gbk\"?>\r\n<business id=\"20001\" comment=\"参数设置\">\r\n<body yylxdm=\"1\">\r\n<servletip>192.168.0.1</servletip>\r\n<servletp ort>7001</servletport>\r\n<keypwd>00000000</keypwd>\r\n</body>\r \n</business>";alert(sInputInfo);try{ret = sk.Operate(sInputInfo);alert(ret);}catch(e){alert(e.message + ",errno:" + e.number);}}function KeyQuery(){var sInputInfo = "<?xml version=\"1.0\" encoding=\"gbk\"?>\r\n<business id=\"20002\" comment=\"税控钥匙信息查询\">\r\n<body yylxdm=\"1\">\r\n<keypwd>00000000</keypwd>\r\n</body>\r\n</busin ess>";alert(sInputInfo);try{ret = sk.Operate(sInputInfo);alert(ret);}catch(e){alert(e.message + ",errno:" + e.number);}}</script></head><body bgcolor=#f0f0ff><div align="center"><form name=formData><table border=2 cellspacing=0><caption ><font size=6 color=#0000ff>ActiveX组件调用示例</font></caption><br><tr height=50><td width="300" align="center"><input type="button" value="参数设置" onclick="SetParameter();"></td><td width="300" align="center"><input type="button" value="税控钥匙信息查询" onclick="KeyQuery();"></td></tr><br></table></form></div></body></html>2. 本地DLL调用⏹DLL文件名:NISEC_SKSC.dll⏹函数定义:void _stdcall PostAndRecvEx(IN LPSTR pszPost, OUT LPSTR pszRecv) 参数:pszPost输入XML信息pszRecv 返回XML信息返回值:无第三章接口定义接口中的xml数据项,如无特殊说明,遵从以下规则:⏹金额字段单位统一为元,小数点后精确到两位。
⏹日期字段格式统一为“YYYYMMDD”。
1. 参数设置1.1接口说明参数设置接口完成服务器IP地址、端口号和税控钥匙口令的设置功能,仅ActiveX接口提供该接口,其它接口调用前必须首先调用参数设置接口。
1.2请求数据请求报文:<?xml version="1.0" encoding="gbk"?><businessid="20001" comment="参数设置"><body yylxdm="1"><servletip>服务器IP地址</servletip><servletport>服务器端口号</servletport><keypwd>税控钥匙口令</keypwd><aqm>注册码</aqm></body></business>参数说明:索ID 名称长度必须说明引1 id 交易编号 5 是200012 comment 交易描述30 是参数设置3 yylxdm 应用类型代码 1 是固定为“1”表示国税15 是4 servletip 税控开票服务器IP地址5 servletport 税控开票服务器5 是端口号6 keypwd 税控钥匙口令8 是7 zcm 注册码512 是1.3返回数据响应报文:<?xml version="1.0" encoding="gbk"?><businessid="20001" comment="参数设置"><body yylxdm="1"><returncode>返回代码</returncode><returnmsg>返回信息</returnmsg></body></business>参数说明:索ID 名称长度必须说明引1 id 交易编号 5 是200012 comment 交易描述30 是获取服务器基本信息3 yylxdm 应用类型代码 1 是固定为“1”表示国税4 returncode 返回代码8 是0成功,其它失败5 returnmsg 返回信息160 是2. 税控钥匙信息查询2.1接口说明提供查询税控钥匙基本信息的接口,主要查询企业纳税人识别号和税控钥匙编号。
仅本地组件接口提供该接口,需要保证税控钥匙与本地电脑连接正常。
2.2请求数据请求报文:<?xml version="1.0" encoding="gbk"?><businessid="20002" comment="税控钥匙信息查询"><body yylxdm="1"><keypwd>88888888</keypwd></body></business>参数说明:索ID 名称长度必须说明引1 id 交易编号 5 是200022 comment 交易描述30 是税控钥匙信息查询3 yylxdm 应用类型代码 1 是固定为“1”表示国税4 keypwd 税控钥匙口令8 是2.3返回数据响应报文:<?xml version="1.0" encoding="gbk"?><businessid="20002" comment="税控钥匙信息查询"><body yylxdm="1"><returncode>返回代码</returncode><returnmsg>返回信息</returnmsg><returndata><nsrsbh>纳税人识别号</nsrsbh><keyno>税控钥匙编号</keyno></returndata></body></business>参数说明:索ID 名称长度必须说明引1 id 交易编号 5 是200022 comment 交易描述30 是税控钥匙信息查询3 yylxdm 应用类型代码 1 是固定为“1”表示国税4 returncode 返回代码8 是0成功,其它失败5 returnmsg 返回信息160 是6 nsrsbh 纳税人识别号20 否7 keyno 税控钥匙编号14 否前两位固定为“33”3. 发票开具3.1接口说明发票开具接口实现发票的正数开具和负数开具,开具成功后由税控服务器生成税控码,并由本地税控钥匙生成发票签名。