中国电子口岸数据中心技术规范海关外网数据交换接口规范(正式发布稿)2016年4 月发布2016年4 月实施中国电子口岸数据中心发布目录前言 (III)海关外网业务数据交换接口规范 (4)1 范围 (4)2 规范性引用文件 (4)3 术语和定义 (4)4 业务概述 (4)4.1 功能描述 (4)4.2 场景描述 (4)5 数据传输接口定义 (5)5.1 概述 (5)5.2 传输协议 (5)5.3 终端报文 (5)5.3.1 报文结构 (5)5.3.2 XML根元素属性 (6)5.3.3 报文描述 (7)5.3.4 报文头描述 (7)5.3.5 附加信息描述 (7)5.4 响应报文 (8)5.4.1 报文结构 (8)5.4.2 XML根元素属性 (9)5.4.3 报文描述 (9)5.4.4 报文头描述 (10)5.4.5 回执内容描述 (10)5.5 签名 (11)5.6 响应代码及其信息 (12)6 安全接口定义 (12)6.1 数据安全 (12)6.2 加签要求 (13)A (14)附录 A (规范性附录)数据传输报文接口XML schema描述 (14)附录 B (规范性附录)终端报文的XML schema描述 (22)参考文献 (30)前言本标准由中国电子口岸数据中心提出并归口。
本标准主要起草单位:中国电子口岸数据中心。
海关外网业务数据交换接口规范1 范围本标准适用于进出口企业向中国电子口岸平台进行数据导入的应用场景。
本标准规定进出口企业数据导入的接口技术要求,包括接入流程、传输接口定义、业务报文接口定义、安全接口定义等。
2 规范性引用文件下列文件对于本文件的应用是必不可少的。
凡是注日期的引用文件,仅所注日期的版本适用于本文件。
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 22239-2008 信息安全技术信息系统安全等级保护基本要求3 术语和定义下列术语和定义适用于本文件。
3.1 报文 message数据交换与传输的数据单元,即一次性要发送的数据块。
3.2 终端报文 terminal message终端报文是企业向中国电子口岸平台发送的传输报文。
3.3 响应报文 response message响应报文是一次传输过程中,中国电子口岸平台接收到企业报文之后,向企业发送的响应信息。
4 业务概述4.1 功能描述海关面向从事进出口业务的企业开放数据导入接口,帮助企业实现内部信息系统能够与中国电子口岸平台的对接,实现海关各类业务单据的数据导入,提高进出口企业的通关效率。
海关业务单据开放的导入接口范围以海关总署业务管理部门对外提供的业务功能范围为准,如超出接口开放范围以外的数据接口,企业可以直接向当地海关进行申请。
4.2 场景描述对于进出口企业内部信息化程度较高,且有需将企业自己的通关信息直接通过内部信息系统向海关申报的要求,即可参照本规范中开放企业数据导入接口进行内部信息系统改造实现数据导入,同时通过中国电子口岸平台将海关审核结果返回给企业。
5 数据传输接口定义5.1 概述海关外网业务数据交换接口报文格式定义,包括终端报文和响应报文。
报文的格式和内容应按照本标准的5.3、5.4和5.5的要求确定。
5.2 传输协议数据交换平台对外进行数据交换时,应采用以下传输方式的一种:——EDI(AS2+AS3);——MQ。
数据交换平台主要协议接入业务量规定:5.3 终端报文5.3.1 报文结构终端报文的结构如图2所示,包括XML根元素属性、终端信息、待传输数据、附加信息和签名。
附录A规定了终端报文的XML schema。
图1 终端报文的结构5.3.2 XML根元素属性XML根元素包括ver和id两个属性,见表1。
表1 DxpMsg节点的属性名称英文名称类型是否必填说明版本ver an..3 必填版本信息,当前版本为1.0。
W3C签名需要的Id an..6 必填W3C签名规范,可5.3.3 报文描述终端报文描述如表2所示。
表2 终端报文5.3.4 报文头描述终端报文的报文头描述如表3所示。
表3 终端报文的报文头5.3.5 附加信息描述报文结构见图2,附加信息描述见表4。
表4 附加信息描述5.4 响应报文5.4.1 报文结构响应报文的结构如图3所示,包括XML根元素属性,响应报文和签名。
附录A规定了响应报文的XML schema。
图2 响应报文的结构5.4.2 XML根元素属性XML根元素包括ver属性。
如表5所示。
表5 响应节点的根元素属性名称英文名称类型是否必填说明版本ver an..3 必填标识响应信息的版本,当前版本为1.05.4.3 报文描述响应报文描述如表6所示。
表6 响应报文名称英文名称类型是否必填说明接收方ID RecevierId an..16必填接收方终端的标识。
5.4.4 报文头描述响应报文的报文头描述如表7所示。
表7 响应报文的报文头5.4.5 回执内容描述回执内容描述如表8所示。
表8 回执内容描述容5.5 签名如需对传输报文进行数字签名,应采用W3C颁布的XML数字签名规范(W3C XML signature recommendation on 12 February 2002)进行加签处理,采用封内签格式,报文结构见图4。
图4 签名报文结构签名报文描述见表9。
表9 签名报文描述名称英文名称类型是否必填说明正规化方法CanonicalizationMethod complexType必填采用C14N规范,该元素的属性Algorithm的值为/TR/2001/REC-xml-c14n-20010315签名算法SignatureMethod complexType必填目前采用RSA-SHA1算法,该元素的属性Algorithm的值为/20005.6 响应代码及其信息数据交换过程中,数据交换平台应及时返回响应代码及信息。
表7给出了常见的响应代码及信息。
表10 响应代码及信息上表列出的响应代码(Code)及信息(Info),Code为0时,表示数据交换平台成功将客户端请求发送给业务系统,可以进一步等待业务系统响应回执。
Code不为0时,表示数据交换平台没有将客户端请求成功发送给业务系统,此时需要根据Info具体内容进行调试,必要时联系服务商协助解决。
6 安全接口定义6.1 数据安全为保证用户导入的报文是合法有效的,导入报文应包含业务签名,由业务系统对业务签名进行校验,以确定该票业务报文是该用户申报的,并且数据是完整的。
若校验不通过,则不允许导入。
6.2 加签要求签名的实现可以通过电子口岸安全产品(包括智能IC卡,智能密码钥匙),也可以通过密码机实现,签名信息应符合W3C加签标准。
密码机需要支持电子口岸CA系统对密码机的技术要求,具体技术要求如下:(1)应具备国家密码管理局批准的商用密码产品型号证书(在有效期内);(2)具有数字签名和签名验证功能;(3)具有密钥对生成和管理功能;(4)支持RSA(1024位/2048位)非对称密码算法;(5)支持SHA1杂凑算法;(6)支持国产SM2非对称密码算法、SM1、SM4对称密码算法、SM3杂凑算法。
(7)支持按照PKCS#10标准生成证书请求并导出请求包;(8)支持双机热备或集群部署;若采用电子口岸安全产品实现加签,电子口岸提供dll形式的控件接口,该接口采用C 语言开发,可供Java或.NET应用程序调用,具体接口如下:附录 A(规范性附录)数据传输报文接口XML schema描述<?xml version="1.0" encoding="UTF-8"?><!-- edited with XMLSpy v2009 () by chenhailong (chinaport) --><xs:schema xmlns:dxp="/dxp" xmlns:xs="/2001/XMLSchema"xmlns:ds="/2000/09/xmldsig#"targetNamespace="/dxp" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:import namespace="/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema-DXP.xsd"/><xs:element name="DxpMsg"><xs:annotation><xs:documentation>客户端传输报文</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="TransInfo" type="dxp:TransInfoType"><xs:annotation><xs:documentation>客户端节点</xs:documentation></xs:annotation></xs:element><xs:element name="Data" type="dxp:Data"><xs:annotation><xs:documentation>待传输数据</xs:documentation></xs:annotation></xs:element><xs:element name="AddInfo" type="dxp:AddInfo" minOccurs="0"/><xs:element ref="ds:Signature" minOccurs="0"/></xs:sequence><xs:attribute name="ver" type="xs:string" use="required" fixed="1.0"/><xs:attribute name="Id" type="xs:ID" use="optional"/></xs:complexType></xs:element><xs:element name="DxpRep"><xs:annotation><xs:documentation>交换平台响应报文</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="RecevierId"><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="16"/></xs:restriction></xs:simpleType></xs:element><xs:element name="AdNodeId" minOccurs="0"><xs:annotation><xs:documentation>发送给用户回执时,是否可以把其归属节点信息一并返回?</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="8"/></xs:restriction></xs:simpleType></xs:element><xs:element name="Response" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="NodeId" minOccurs="0"><xs:annotation><xs:documentation>产生错误回执的节点id</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="8"/></xs:restriction></xs:simpleType></xs:element><xs:element name="ResponseCode"><xs:annotation><xs:documentation>报文处理响应码</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="9"/></xs:restriction></xs:simpleType></xs:element><xs:element name="ResponseInfo" minOccurs="0"><xs:annotation><xs:documentation>报文响应信息</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:maxLength value="300"/></xs:restriction></xs:simpleType></xs:element><xs:element name="Results" minOccurs="0"><xs:annotation><xs:documentation>每个接收者的处理回执内容</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="Result" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="RecId"><xs:simpleType><xs:restrictionbase="xs:string"><xs:minLength value="1"/><xs:maxLength value="16"/></xs:restriction></xs:simpleType></xs:element><xs:element name="Code"><xs:simpleType><xs:restrictionbase="xs:string"><xs:minLength value="1"/><xs:maxLengthvalue="9"/></xs:restriction></xs:simpleType></xs:element><xs:element name="Info" minOccurs="0"><xs:simpleType><xs:restrictionbase="xs:string"><xs:maxLength value="300"/></xs:restriction></xs:simpleType></xs:element><xs:element name="Note" minOccurs="0"><xs:simpleType><xs:restrictionbase="xs:string"><xs:maxLength value="500"/></xs:restriction></xs:simpleType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="NoticeTime" type="xs:date"><xs:annotation><xs:documentation>回执产生时间,由服务器生成</xs:documentation></xs:annotation></xs:element><xs:element name="Note" minOccurs="0"><xs:annotation><xs:documentation>备注</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:maxLength value="500"/></xs:restriction></xs:simpleType></xs:element><xs:element name="OriHead" type="dxp:TransInfoType"/></xs:sequence></xs:complexType></xs:element><xs:element ref="ds:Signature" minOccurs="0"/></xs:sequence><xs:attribute name="ver" type="xs:string" use="required" fixed="1.0"/> </xs:complexType></xs:element><xs:complexType name="Data"><xs:simpleContent><xs:extension base="xs:base64Binary"/></xs:simpleContent></xs:complexType><xs:complexType name="TransInfoType"><xs:annotation><xs:documentation>ClientNode</xs:documentation></xs:annotation><xs:sequence><xs:element name="CopMsgId"><xs:annotation><xs:documentation>原始报文id</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="255"/></xs:restriction></xs:simpleType></xs:element><xs:element name="SenderId" nillable="false"><xs:annotation><xs:documentation>发送方id</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:maxLength value="16"/><xs:minLength value="1"/></xs:restriction></xs:simpleType></xs:element><xs:element name="ReceiverIds"><xs:annotation><xs:documentation>接收方,可支持多个</xs:documentation> </xs:annotation><xs:complexType><xs:sequence><xs:element name="ReceiverId" maxOccurs="5"><xs:annotation><xs:documentation>接收方id</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:maxLength value="16"/><xs:minLength value="1"/></xs:restriction></xs:simpleType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="CreatTime" type="xs:dateTime"><xs:annotation><xs:documentation>原始报文创建时间</xs:documentation> </xs:annotation></xs:element><xs:element name="MsgType"><xs:annotation><xs:documentation>报文类型</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="0"/><xs:maxLength value="30"/></xs:restriction></xs:simpleType></xs:element></xs:sequence></xs:complexType><xs:complexType name="AddInfo"><xs:sequence><xs:element name="FileName" minOccurs="0"><xs:annotation><xs:documentation>原始报文名,可选</xs:documentation> </xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:maxLength value="255"/><xs:minLength value="1"/></xs:restriction></xs:simpleType></xs:element><xs:element name="IcCard" minOccurs="0"><xs:annotation><xs:documentation>ic卡号</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="13"/></xs:restriction></xs:simpleType></xs:element><xs:element name="BizKey" minOccurs="0"><xs:annotation><xs:documentation>业务关键字,可选</xs:documentation> </xs:annotation><xs:complexType><xs:sequence><xs:element name="Key" maxOccurs="5"><xs:complexType><xs:simpleContent><xs:extension base="dxp:Key"><xs:attribute name="name"><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="32"/></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="IsText" minOccurs="0"><xs:annotation><xs:documentation>文本标识节点,存在标识为文本,必须说明字符集</xs:documentation></xs:annotation><xs:complexType><xs:attribute name="Encode" use="required"><xs:annotation><xs:documentation>字符集</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:maxLength value="50"/></xs:restriction></xs:simpleType></xs:attribute></xs:complexType></xs:element><xs:element name="RecMapId" minOccurs="0"><xs:annotation><xs:documentation>接收方报文转换ID</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType><xs:simpleType name="Key"><xs:restriction base="xs:string"><xs:minLength value="1"/><xs:maxLength value="64"/></xs:restriction></xs:simpleType></xs:schema>附录 B(规范性附录)终端报文的XML schema描述终端报文的XML schema描述如下,其中包括了响应节点的报文描述。