实例介绍
海关对接 订单申报 php xml加签
报文介绍
海关申报有进口申报和出口申报等,根据你的业务类型决定需要对接报文,具体可以咨询客服,本文是以进口订单申报来介绍报文加签申报的过程。
报文有两种:一种是CEB开头的这种是总署统一版的报文,例如:CEB311Message 这个是进口电子订单报文;还有一种是KJ开头的这种是公共平台的报文,例如:KJ881111,这个也是进口电子订单报文。 这两种报文都能实现申报电子订单的申报,建议还是选择CEB格式的报文,这个是新版的报文,KJ好像是老版的,对接群里有用KJ报文对接三单对碰有问题转CEB的,所以最好还是用CEB报文。本文的加签也是用CEB报文来加签的。
加签申报步骤
报文申报分两步:第一步是报文加签推送到公共平台,第二步是在在第一步的基础上加海关签来申报。
第一步的报文加签: 海关提供两种加签方式:一种是用他们提供的客户端加签申报;另一种是使用http程序来加签申报。本文是介绍http程序加签申报的。 这个客户端即可以给第一步的报文加签,也可以给第二步的报文加海关签,具体的客户端配置可以看文档,是以报文文件形式来处理的,不如http程序加签灵活。
第二步的海关加签: 配置好海关的客户端插上UKEY,运行客户端,客户端会自动下载你第一步提交到公共平台的报文文件,自动加海关签申报,所以给报文加海关签是不需要我们处理的。当然你也可以用加密机来加海关签,这个要申请的。 加海关签其实也是给报文加签,只不过用的客户端来加签。原理我猜测也是用公钥私钥加签,公钥私钥集成在UKEY中,所以海关签必须用海关提供的客户端或是加密机。
http程序加签
-
生成对应类型报文,注意一定要按照海关提供的格式来,稍有不同就不对。我的例子是生成的CEB311Message的订单报文是"./xml/CEB311Message.xml"。
-
转成http申报格式,具体见'./xml/unsigned-ceb.xml',这个是待加签文件。
-
对待加签内容加签,加签后的文件是'./xml/signed-ceb.xml'。
-
采用post 方式提交到公共平台。返回的结果只是提交的情况,申报成功与否还要看公共平台的回执信息。
加签说明
海关提供的是java用的pkcs8格式的公钥私钥,要转换成php用的pkcs1格式的公钥私钥。
转换命令: 私钥 openssl rsa -inform DER -in privatekey.key -outform PEM -out privatekey.pem
公钥 openssl rsa -inform DER -in publickey.key -pubin -outform PEM -out publickey.pem
key目录下的privatekey.key、publickey.key 是海关提供的测试环境的pkcs8格式的私钥公钥,privatekey.pem、publickey.pem是我转换后的pkcs1格式私钥公钥。
xml加签用的是这个包:https://github.com/robrichards/xmlseclibs
加签示例运行index.php 文件即可,配置的是测试环境的参数。
测试环境不能加海关签,到http程序申报成功就可以了。正式环境只需要更改参数,更换公钥私钥,开启客户端就行。
注意问题
客户端配置要注意密码,一般有个初始密码,也可以更改。这个一定要配置对,配置错了客户端启动几次会锁卡,好像是4次吧;锁卡后就要到发卡处解卡,解卡费260,别问我是怎么知道的,掉进去过。
查看申报状态可以去公共平台的测试环境查看,状态是转发成功表示提交到公共平台成功了;状态是无需转发表示报文编号或是订单号已经申报过,想要在测试就要更改订单号和报文编号(guid)。
海关加签其实也是给'./xml/CEB311Message.xml'的内容加签,只不过是由客户端来加签,所以http程序加签里是不用对这个文件的内容加签的。
【源码目录】
haiguan-master
├── README.md
├── index.php
├── key
│ ├── privatekey.key
│ ├── privatekey.pem
│ ├── publickey.key
│ └── publickey.pem
├── xml
│ ├── CEB311Message.xml
│ ├── signed-ceb.xml
│ └── unsigned-ceb.xml
└── xmlseclibs-master
├── CHANGELOG.txt
├── LICENSE
├── README.md
├── composer.json
├── src
│ ├── Utils
│ │ └── XPath.php
│ ├── XMLSecEnc.php
│ ├── XMLSecurityDSig.php
│ └── XMLSecurityKey.php
└── xmlseclibs.php
5 directories, 18 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论