Skip to content

China e-port data signature;中国电子口岸海关总署-海口海关“CEBXxxMessage.xml末三段报文”和“海关179数据抓取报文”加签服务,无任何中间件,开箱即用,无须进行二次编译安装

License

Notifications You must be signed in to change notification settings

newcardriver/chinaport-data-signature

 
 

Repository files navigation

中国电子口岸海关总署XML报文&海关179数据加签

China e-port data signature

中国电子口岸海关总署-海口海关CEBXxxMessageXML末三段报文和 海关179号公告报文加签服务,开箱即用,无任何中间件;本项目遵守GNU 3.0协议,本项目里面所有到的x509 证书不具有任何真实性、合法性,企业应根据自己的情况替换成自己真实的证书,ukey加签直接直接下载release 运行修改参数运行既可,不需要导出.cer证;

使用业务场景:

  • 中国境内的跨进电商业务

提示:

  • 此应用不支持集群部署(原则上一个u-key只能连接一台Windows电脑作为加签的Websocket客户端)

  • 单体应用直接下载release的二进制文件使用即可(使用较多)

  • 分布式微服务请切换到dev-microservice分支构建(较少使用)

在第一次提交代码之前,地球上的搜索引擎在2022-02-14之前还找不到任何有参价值的信息......

  • Previews of China e-port data signature

项目开始前我们先了解下海关总署XML报文的加签都在什么价位?顺便说下海关179数据抓取加签直接按要求拼参数即可,像百度、CSDN里你能搜索到, 但唯独没有XML的加签,细品下图:

IMG_0373-side

你没看错:你去找乙方对接,乙方不告诉你加签用到的算法,要你自己开发。

好,那就开发吧!

  • 电子口岸的操作员u-key长啥样:

IMG_0401

  • 启动项目:chinaport-data-signature

image-20220219001115869

我这是在启动脚本里指定了u-keyip为我与我MacBookPro处于统一局域网下面的Windows电脑的主机ipWindows 上你使用git bash也能达到我终端这样的效果(Windows小伙伴注意下这里,我这是通过Git Bash 启动的,Windows终端汉字会乱码,你可以查看log文件避开汉字乱码的问题)。

image-20220219162400840

1 sonarqube代码质量审查

image-20220218023508803

2 软件运行概况

序号 类目 版本 备注
1 软件运行环境 Java SE Development Kit 17 基础软件最低运行要求
2 硬件运行环境 Windows-10-x64/Windows-11-x64/Windows-server-x64/Linux(自行解决内网穿透问题,ukey只能插Windows电脑上)
3 硬件性能要求 > =1核CPU+2G运行内存 不能比这小了
4 对技术人员的要求 会把电子口岸ukey插入安装好[电子口岸控件](中国国际贸易单一窗口登录管理 (singlewindow.cn))Windows电脑上,会改启动脚本里面的参数,会用鼠标双击启动脚本

3 运行参数概况

参数名 备注
eport.signature.ukey.cert-path u-key的.cer证书在classpath的相对路径,如: cert/01691fe9.cer,提示:下载release直接运行的不管用这个参数。
eport.signature.ukey.ws-url u-key做插Windows电脑的socket链接url,如: ws://127.0.0.1:61232,下载release直接运行的修改全局配置的UKEY_HOST即可
eport.signature.ukey.password u-key密码的密码,默认: 88888888, 如果密码改过,需要指定下,下载release直接运行的修改全局配置的UKEY_PASSWORD即可

其他,本应用是标准的springboot应用,支持springboot的所有配置参数。

4 启动脚本介绍

本人已提供好Windows环境、Linux/MacOS的环境下的脚本,企业只需要修改2个参数既可开箱即用,详细配置yaml参数参考

启动文件相对的位置:

image-20220214002812928

4.1 Windows环境

运行方式:鼠标双击打开

@ECHO OFF

REM ------ 全局参数配置 ------

REM 参数说明:
REM APP_NAME: jar包名称
REM UKEY_CERT_PATH: .cer证书在classpath下的相对路径,直接下载release运行的同学不需要配置
REM UKEY_HOST: 中国电子口岸操作员u-key所连接的Windows PC的主机ip
REM UKEY_PASSWORD: 中国电子口岸操作员u-key密码,默认: 88888888

set "APP_NAME=chinaport-data-signature"
set "UKEY_CERT_PATH="
set "UKEY_HOST=127.0.0.1"
set "UKEY_PASSWORD=88888888"

REM ------ 全局参数配置 ------

title %APP_NAME%

PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas

set "APP=%CD%\%APP_NAME%"
set "JVM_ARGS=-Dfile.encoding=UTF-8 -Xms1g -Xmx1g"

java %JVM_ARGS% -jar %APP%.jar ^
--server.port=8080 ^
--spring.profiles.active=prod ^
--eport.signature.ukey.cert-path=%UKEY_CERT_PATH% ^
--eport.signature.ukey.ws-url=ws://%UKEY_HOST%:61232 ^
--eport.signature.ukey.password=%UKEY_PASSWORD%

echo 按人任意键退出.
pause >nul
exit

4.2 Linux/MacOS环境

运行方式:终端执行sh start.sh启动程序

#!/bin/bash

# ------ 全局参数配置 ------

# 参数说明:
# APP_NAME: jar包名称
# UKEY_CERT_PATH: .cer证书在classpath下的相对路径,直接下载release运行的同学不需要配置
# UKEY_HOST: 中国电子口岸操作员u-key所连接的Windows PC的主机ip
# UKEY_PASSWORD: 中国电子口岸操作员u-key密码,默认: 88888888

APP_NAME="chinaport-data-signature"
UKEY_CERT_PATH=""
UKEY_HOST="127.0.0.1"
UKEY_PASSWORD="88888888"
JAVA_ARGS="-Dfile.encoding=UTF-8 -Xms1g -Xmx1g"

# ------ 全局参数配置 ------
java ${JAVA_ARGS} -jar ${APP_NAME}.jar \
  --server.port=8080 \
  --spring.profiles.active=prod \
  --eport.signature.ukey.cert-path=${UKEY_CERT_PATH} \
  --eport.signature.ukey.ws-url=ws://${UKEY_HOST}:61232 \
  --eport.signature.ukey.password=${UKEY_PASSWORD}

5 软件架构

类目 版本 备注
Jdk17 17.0.2 LTS
spring-boot-starter-parent 3.0.0-M1
spring-cloud 2022.0.0-M1
smart-doc 2.3.7 一个自动化的API文档输出工具,还在用word、rap2、yapi、swagger? 该更新技术栈了。
sonar 3.9.0.2155 一款开源的代码质量分析工具,能编码是规避很多潜在bug
spring-boot-starter-validation 3.0.0-M1 spring新一代的参数校验器,替代javax JSR303的工具

单体架构,可直接开箱即用,也可与分布式微服务集成,可拔插注入配置中心,通过远程RPC调用加签接口也是可以的。

6 开发文档

启动项目,浏览器访问: http://127.0.0.1:8080 , 会打开以下界面接口文档的H5版本,可直接在页面给ukey发送请求.

image-20220217013840347

image-20220218212801220

  • XML加签响应示例
{
  "message": "操作成功",
  "success": true,
  "timestamp": "2022-02-17 12:12:59",
  "code": 200,
  "data": {
    "success": true,
    "certNo": "01681fe8",
    "x509Certificate": "MIIE+TCCBGKgAwIBAgIEAWkf6TANBgkqhkiG9w0BAQUFADB8MQswCQYDVQQGEwJjbjEVMBMGA1UECh4MTi1W/XU1W1BT41y4MRUwEwYDVQQLHgyLwU5me6F0Bk4tX8MxDTALBgNVBAgeBFMXTqwxITAfBgNVBAMeGE4tVv11NVtQThpSoYvBTmZ7oXQGTi1fwzENMAsGA1UEBx4EUxdOrDAeFw0yMTA1MzEwMDAwMDBaFw0zMTA1MzEwMDAwMDBaMBwxDTALBgNVBAMeBH8qdDMxCzAJBgNVBBIeAgAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDt9T7JOQikKKL7oY7RWbRMp7y2VsrXIbFzSDh5DZQPimduUijZzZlK6AkZMDYJBM2/IJGI0QjWjBJVZ8hEUkgJb4UOOBCBM+cCGFCNY5LX/mAo5BoexgG4Kdr0TwxAQ+s3H85fCU81ROgqAS05/IzOR7eDSEYYT9CRmNYXIRTPVwIDAQABo4IC5jCCAuIwCwYDVR0PBAQDAgbAMAkGA1UdEwQCMAAwgacGA1UdIwSBnzCBnIAU+XWjeEULQmjCBFOr68NOPlR4dGChgYCkfjB8MQswCQYDVQQGEwJjbjEVMBMGA1UECh4MTi1W/XU1W1BT41y4MRUwEwYDVQQLHgyLwU5me6F0Bk4tX8MxDTALBgNVBAgeBFMXTqwxITAfBgNVBAMeGE4tVv11NVtQThpSoYvBTmZ7oXQGTi1fwzENMAsGA1UEBx4EUxdOrIIBADAdBgNVHQ4EFgQU1eAz50lwZ6gidtkJNPIr7O0jKvUwQgYDVR0gBDswOTA3BgYrgQcBAQIwLTArBggrBgEFBQcCARYfaHR0cDovL2Nwcy5jaGluYXBvcnQuZ292LmNuL0NQUzByBgNVHR8EazBpMDCgLqAshipsZGFwOi8vbGRhcC5jaGluYXBvcnQuZ292LmNuOjM4OS8wMDAtMS5jcmwwNaAzoDGGL2h0dHA6Ly9sZGFwLmNoaW5hcG9ydC5nb3YuY246ODA4OC9kemthMDAwLTEuY3JsMG0GCCsGAQUFBwEBBGEwXzAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuY2hpbmFwb3J0Lmdvdi5jbjo4ODAwLzAtBggrBgEFBQcwAYYhaHR0cDovL29jc3AuY2hpbmFwb3J0Lmdvdi5jbjo4MDg4MCoGCisGAQQBqUNkBQEEHBYauqPEz9DHtLS7pcGqzfjSvdKp09DP3rmry74wEgYKKwYBBAGpQ2QFAwQEFgIwMTAiBgorBgEEAalDZAUIBBQWEjMxMDEwMjE5ODAwNzI0MzIxNDAdBgorBgEEAalDZAUJBA8WDUpKMEc5MDAxNTkyNzIwGQYKKwYBBAGpQ2QFCwQLFglNQTVUTFVBNTMwEgYKKwYBBAGpQ2QFDAQEFgIwMDASBgorBgEEAalDZAIEBAQWAjE0MBIGCisGAQQBqUNkAgEEBBYCMTIwDQYJKoZIhvcNAQEFBQADgYEAqSuOMxAzM4bXvdlDcE6fODsCvQMFKctlA+LCllFQwl58HaBmcWx4T/ddKF9LBYc8A986LlcUw6Mkwxraj2WO+meXdDzRLEO8t3gyZk7tYp5aneV4zGYUsphwyMdLt8N8o4kVgg16bQy43XgA1jRMv8nvhb908IqQQBxwv0SIuXU=",
    "digestValue": "b2FtM/jHvW4fnJpMMPWk/177RwA=",
    "signatureValue": "mhWpJI3RsJZGiR8MqI3kcJAJPqgVOQi0IFJzp0CBWLG+Qa7ZnYJX+hi70J+/09diHYkCMDxcKuT5uogbFvi/9rOZnrn+YsL0h0/nGcO31lx/RpqT8i5GoSt/UcZe9COIbnrKwdh+90FLYIW4xS3Rsglv4CDL+e53GGmSdduSTUU="
  }
}

image-20220217014013410

  • 海关179加签返回示例

提示:179加签只需要两个字即可

{
  "message": "操作成功",
  "success": true,
  "timestamp": "2022-02-17 01:44:49",
  "code": 200,
  "data": {
    "success": true,
    "certNo": "01681fe8",
    "signatureValue": "GV+t/IwqDZFL0K44tv8OWfiiEp6RhxtT0/c7OjrmboaQiYuQaSXZfwsAgqdLA4sU/gInK5K5cs9/wxG+E4hW8nL4UslsLVFmTQXtW4I3p2DitnovHAbqELU4/vetzLQeOPTXUOFTBEUU9fc9C6yAPJlDuz13f9QjwsmdFniW/yU="
  }
}

About

China e-port data signature;中国电子口岸海关总署-海口海关“CEBXxxMessage.xml末三段报文”和“海关179数据抓取报文”加签服务,无任何中间件,开箱即用,无须进行二次编译安装

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 76.2%
  • HTML 14.3%
  • JavaScript 9.5%