油气液体化工品物流监控企业接入规范_第1页
油气液体化工品物流监控企业接入规范_第2页
油气液体化工品物流监控企业接入规范_第3页
油气液体化工品物流监控企业接入规范_第4页
油气液体化工品物流监控企业接入规范_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附件4南京海关物流信息化管理系统报文交换方式技术要求一、应用方式介绍南京海关于外联网上设置报文接收MQ通道,企业将符合格式要求的报文,按南京海关MQ报文交换标准进行自动传输,同时提供相应接收MQ通道,海关负责将有关回执信息写入该通道,由企业自行读取处理。报文交换基本流程图流程说明:1企业将报文(运抵报告、理货报告),加签,压缩、通过IPSEC VPN安全通道,发送至南京海关外联网上的服务器端程序指定的MQ队列中。 2南京海关从外联网的指定MQ队列取出企业报送的报文,经过解压缩,验证签名,存证后发往海关管理网,供海关关员业务处理。同时发送接收回执。3海关关员在物流系统进行审批处理或新舱单系统中进行舱单业务处理。4海关系统将生成的业务回执签名、压缩、通过IPSEC VPN安全通道,写入企业端回执信息接收队列中;5企业系统从企业队列中读取回执,解压、验签,进行进一步的业务处理。二、技术要求采用该方式的企业,需进行如下准备工作:(一)实现与海关的VPN联网企业准备一条具有固定公网IP地址的互联网接入线路,配备VPN接入设备。相关配置要求见采用IPSec VPN技术与南京海关联网的设备配置规范的规范配置实施与海关网络的互联。南京海关技术处提供相关技术支持,联系方式为南京海关技术热线:025-。(二)购置与本系统配套的CA认证卡(USB Key)该Key的购置方法与网站程序录入方式相同,但企业需要基于该Key进行编程,实现报文发送接收的加验签。CA公司提供报文签名、验签控件等相应编程接口,各企业可在开发中使用,相关的技术支持由CA公司承担。报文数字签名要求:与海关交换的报文和回执均须进行数字签名,可采用省CA公司或联通CA公司的CA体系,由用户自行选择。企业用户需基于USBKey对向海关申报的XML报文内容进行加签,并对海关回执报文验签。加签验签的标准以海关总署2008年81号公告中中国海关进出境水运、空运货物舱单报文格式制定说明有关报文数字签名的要求为准。经与两CA公司协商,两家公司均已开发出符合上述规范的报文加签验签的标准接口,企业用户如开发程序需要,可与相关CA公司联系,有关CA公司提供相应开发接口程序及技术支持(三)生成符合标准的报文企业按照南京海关报文规范,从自身业务系统中抽取形成标准报文。具体报文规范及格式要求见南京海关相关公告。(四)开发报文传输软件企业需开发报文传输系统,按照海关确定的标准接口,把海关规定申报的报文数字签名后发送给海关,同时接受海关回执报文。报文传输采用MSMQ3.0软件,CA体系支持江苏CA和联通CA两类。1.具体传输方式企业端需要建立2个MQ队列。其一为接收海关业务回执的队列,此队列为事务性队列。企业需要提供相关MQ地址信息(格式FORMATNAME:DIRECT=TCP:192.168.170.2private$client_sample_ receipt,其中“192.168.170.2”应填海关在VPN网上分配给企业MQ服务器的地址)。其二为接收报文是否验签成功的传输回执接受队列,此队列为非事务性队列。企业需要提供相关MQ地址等信息(格式FORMATNAME:DIRECT=TCP:192.168.170.2private$ client_sample_response,其中“192.168.170.2”应填海关在VPN网上分配给企业MQ服务器的地址),海关端程序将向两个队列中写入相应回执信息。企业端程序负责从相应队列中读取回执,如企业需要可以进行相关报文存证,企业要对队列进行实时监控,保持MQ报文传输服务器的稳定性和消息队列的畅通。针对海运部分系统及空运部分系统,海关分别提供2个报文接收队列,业务报文接收队列为MSMQ事务性队列,传输回执接受队列为非事物性队列。业务报文接收队列用于接收企业申报的业务报文数据,传输回执接收队列用于接收海关业务回执报文是否验签成功的信息。2.目前海关端接受队列地址。l 海运系统报文接受队列业务报文接收队列(事务性队列)FORMATNAME:DIRECT=TCP:192.168.2.126private$east_sample_message_qy传输回执接受队列(非事务性队列)FORMATNAME:DIRECT=TCP:192.168.2.126private$east_sample_responsel 空运系统报文接受队列业务报文接收队列(事务性队列)FORMATNAME:DIRECT=TCP:192.168.2.127private$east_sample_message_qy传输回执接受队列(非事务性队列)FORMATNAME:DIRECT=TCP:192.168.2.127private$east_sample_response3.企业报文传输分两个阶段:企业申报报文发送阶段及企业回执报文接受阶段。具体流程图如下企业申报报文发送阶段,主要步骤为6步:(1)企业应用系统生成符合海关规范的申报报文,(2)调用相应的CA控件队报文进行数字签名(3)将数字签名后的报文进行ZIP压缩(4)将压缩后的数据内存流转换成字符数组,并作base64编码。(5)将Base64编码后的报文数据写入海关企业报文接受队列中。 注意:写入规范为将申报报文的文件名赋值给消息的标签(Label)属性,报文内容赋值给消息的报文体(Body)属性。企业传输回执接受队列地址赋值给消息的回执报文队列(ResponseQueue)属性。(6)从企业传输回执接受队列中收取海关传输回执消息。回执消息的标签(Label)属性为回执报文的文件名(即企业申报报文的文件名),回执消息的报文体(Body)属性为回执报文的内容。回执报文的内容为布尔值“TRUE”或“FALSE”,“TRUE”表示该企业申报报文海关验证通过,“FALSE”表示该企业申报报文海关验证未通过。企业回执报文接收阶段,主要步骤也分为6步:(1)企业应用系统将接收海关业务回执的队列中的回执报文读出。报文内容为回执消息报文体(Body)属性中的内容,报文名为回执消息的标签(Label)属性的内容。海关传输回执接受队列地址为回执消息的回执报文队列(ResponseQueue)属性的内容。(2)将报文内容(BASE64编码)转化为字节数组。(3)将字节数组解压缩转换成报文原文。(4)调用相应CA控件验证海关数字签名。(5)生成传输回执消息发送至海关传输回执接受队列。同样,传输回执消息的标签(Label)属性为报文的文件名(即海关回执报文的文件名),传输回执消息的报文体(Body)属性为回执报文的内容。回执报文的内容为布尔值“TRUE”或“FALSE”,“TURE”表示该海关回执报文企业验证通过,“FALSE”表示该海关回执报文企业验证未通过。(6)企业应用系统使用海关回执报文。4.开发报文传输程序可参考本文第三部分“报文传输软件参考程序片断”。三 、报文传输软件参考程序片断(一)签名public static string SignXml(string xmlContent) if (provider.ToLower() = uni) if (signaturer.ToLower() = server) SignatureInterface.SignatureInterfacePortTypeClient sig = new MsgTrnsCommon.SignatureInterface.SignatureInterfacePortTypeClient(); return sig.getXMLSignature(ConfigurationManager.AppSettingsSystemId, xmlContent); else return UniClient.XMLSignMQ(xmlContent); else if (provider.ToLower() = jsca) if (signaturer.ToLower() = server) JsServer.SetServer(ConfigurationManager.AppSettingsJsServer,int.Parse(ConfigurationManager.AppSettingsSignPort); return JsServer.gtSignXmlString(xmlContent, ConfigurationManager.AppSettingsJsCert); else return JsClient.gtSignXmlString(xmlContent); else return string.Empty; (二) 验签public static string VerifySign(string xmlContent) if (provider.ToLower() = uni) if (verifier.ToLower() = server) VerifySignature.VerifySignatureInterfacePortTypeClient ver = new MsgTrnsCommon.VerifySignature.VerifySignatureInterfacePortTypeClient(); return ver.xmlVerifySignature(xmlContent); else return UniClient.XMLVerifyMQSign(xmlContent); else if (provider.ToLower() = jsca) if (verifier.ToLower() = server) JsServer.SetServer(ConfigurationManager.AppSettingsJsServer,int.Parse( ConfigurationManager.AppSettingsValiPort); return JsServer.gtVerifyXmlString(xmlContent); else UTF8Encoding ut = new UTF8Encoding(); Byte encodedBytes = ut.GetBytes(xmlContent); String decodedString = ut.GetString(encodedBytes); return JsClient.gtVerifyXmlString(decodedString); else return string.Empty; (三) 压缩public static Stream Compress(Stream s) s.Seek(0, SeekOrigin.Begin); MemoryStream cs = new MemoryStream(); try DeflaterOutputStream cs1 = new DeflaterOutputStream(s, new Deflater(Deflater.BEST_COMPRESSION); StreamCopy(cs, cs1, streamCopyBufferSize); catch (Exception ex) Logging.LogManager.GetLogger().Error(压缩程序出错, ex); throw ex; cs.Seek(0, SeekOrigin.Begin); return cs; (四) 解压缩public static Stream Decompress(Stream s) InflaterInputStream inflaterInputStream = null; try s.Seek(0, SeekOrigin.Begin); inflaterInputStream = new InflaterInputStream(s); catch (Exception ex) Logging.LogManager.GetLogger().Error(解压缩出错, ex); throw (new Exception(出错函数 + Decompress + ex.Message); return inflaterInputStream; (五) 字节数组与Base64的转换:static void Main(string args) string factString = 中华人民共和国; byte myByte; string Base64Str; /先把字符串按照utf-8的编码转换成byte Encoding myEncoding = Encoding.GetEncoding(utf-8); /myByte中获得这样的字节数组:228,184,173,229,141,142,228,186,186,230,176,145,229,133,177,229,146,140,229,155,189 myByte = myEncoding.GetBytes(factString); /把byte转成base64编码,这个例子形成的base64编码的unicode等价字符串为:5Lit5Y2O5Lq65rCR5YWx5ZKM5Zu9 Base64Str = Convert.ToBase64String(myByte); /再从ba

温馨提示

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

评论

0/150

提交评论