179海关对接PHP接口文件下载

整理海关179公告对接接口,ThinkPHP、MYSQL代码:
https://download.csdn.net/download/adophper/83339172

对接流程

1.同步接收,异步上报;

2.写接口地址, 审核地址, 2分钟内上报,部署好服务自动运行

>>前置工作:

1.保存原始支付请求,支付响应
2.开发商品预览页
3.支付报关
4.开发接收接口
5.开发加签客户端程序
6.开发上报程序

权限问题

 1.我的页面怎么没有服务注册管理?

1)需要用法人卡登录

2)入口不对, 海关互联网+ 登录标准入口: http://ceb1.chinaport.gov.cn 点击 跨境电商进口统一版 进入

3)没有电商企业和电商平台的资质, 自己查询, 查询地址 http://credit.customs.gov.cn/ ,如果没有,则需要办理

 2.没有电商企业和电商平台资质怎么办理?

1).线上申请,已经办理好海关备案登记,取得电子口岸卡的企业,可登陆 办卡海关所属地单一窗口网站, 要用卡介质登录
进入 企业资质 > 企业注册登记 > 注册信息变更申请 页面,在跨境电子商务企业类型一栏 , 勾选 "电子商务企业"、"电子商务交易平台" 两个选项,进行线上备案申请

2)现场审核,打电话(95198或12360)咨询需要要什么资料,然后到你海关的企业管理科去做现场审核

 注册问题

 >>注册地址:

http://ceb1.chinaport.gov.cn/  点进口版

1.注册页面需要填哪些信息?

a),证书编号, 如果有字母,要转换为小写,

b),证书,要用标准的证书, http://wyb.qdhuaxun.cn/179/other/cert.php 用这个网址导出

c),审核订单编号(随便填一个), 联系人, 联系方式

d),服务地址, 自己编写的接收海关查询的接口

 2.证书注册栏,点击上传证书按钮,如果提示"操作失败"?

a.互联网+入口地址不对,看群公告最新登录地址
b.清理浏览区缓存试下
c.不要用360浏览器,用谷歌浏览器试试,最大的原因是入口不对

 3.为什么我的注册页面里, 电商平台代码和电商平台名称是空的?

没有电商企业和电商平台的资质, 自己查询, 查询地址 http://credit.customs.gov.cn/ ,如果没有,则需要办理

 4.注册页面里 ,平台代码 或平台名称与最新的不一致?

要到海关办卡部门变更,同步成最新的

5.证书怎么获取?

http://wyb.qdhuaxun.cn/179/other/cert.php

6.建行共享盾证书获取失败?

http://wyb.qdhuaxun.cn/179/other/cert.php

审核问题

 1.查询接口写好了,如何知道能否通过审核?

可以使用 http://wyb.qdhuaxun.cn/179/zhongji.php#step1进行模拟查询

 2.服务接口写好了, 怎么让管理员审核?

现在没有测试环境了,自己在网站http://ceb1.chinaport.gov.cn/后台配置测试。

 3. 服务地址为何审核没通过?

1).端口不是80,不能加端口号, 不能是https,

2)网址前后有空格;

3)接口未返回正确信息,企业返回的不是:{“code”:“10000”,“message”:"",“serviceTime”:1567050097628}

4)http跳转到https了, 301

5)useragent拦截了

4.一直没给审核怎么办?

可能是没看到,多发几次!

5.请求企业地址失败:查询无订单号 null 这个是什么原因呢?

注册页面第二项, 审核订单号,填一下就好了,这个订单号随便填

只要你填的订单号,能返回{"code":"10000","message":"","serviceTime":1567050097628}就可以了,

所填订单号要在http://wyb.qdhuaxun.cn/179/zhongji.php#step1 模拟查询,能返回通过便可

 取值问题

 1,收款企业名称recpName字段

取值问题, 收款企业名称

2,收款账号recpAccount字段

企业收款的银行卡号

3.商品展示网址itemLink字段

单独做一个web页面,app不可以,小程序不可以,样式无特别要求,显示商品图片,名称,售价等便可

4.其他参数

https://blog.csdn.net/alexyu01/article/details/103611872

5.支付报关参数怎么获取?

>微信报关接口: https://pay.weixin.qq.com/wiki/doc/api/external/declarecustom.php?chapter=18_1

>支付宝报关接口: https://opendocs.alipay.com/open/155/104778/

>报关详解: https://blog.csdn.net/alexyu01/article/details/103585812

加签问题

 1.加签需要在本地搞台服务器吗?

因为上报的报文需要用ukey加签, 而且驱动只能在window上运行

 2.放云服务器上不行吗?

不建议,麻烦

 3.加签服务器要一直开着?

最好是,因为是抽查,不过一般是在上班时间, 在清单发送后这个节点

4.加签方案用什么好?

usbkey的话
通过websocket服务器,wss: 61231,ws: 61232,加签
通过调用dll方式加签,效率高一些,稳定性好一些
加签的内容是179独有的格式字符串,海关对接会给例子,参照例子来就行,不同于其他总署报文的加签内容
公服就是通过公服的接口加签,云加签

用轮询,扫描服务器的好,不要用什么固定ip,内网穿透这种的

5.其他问题

1).usbkey是硬件加签,windows驱动,这个无论如何是绕不开的
所以想放到linux上去的,是不现实的
2).放在远程服务器机房可不可以?
当然可以,但是维护起来麻烦,如果usbkey卡死了,还得找人重新拔插
3).我见过的几种实现方式?
有ws内网穿透的,有usb虚拟接口的,但要么是使用和维护成本太高,要么是技术难度有点大
要么是安全性不行,目前轮询是一个即经济有便利的实现方式
4).对本地服务器有何要求?
对机器本身没有太高要求,但是网络要稳定
机器的话,windowxp的都一样用
5).加签实现方式
有用浏览器+js的,有用go的,有用java的,有用php的,有用c#的,有用python的
各有优劣吧,但是感觉还是比较复杂,需要配置计划任务

上报问题

1.上报数据时,如果报"验签失败"

a.原文不匹配(注意格式 字段顺序 二级字段顺序 必须和固定格式一致 表头表体和时间的value必须添加双引号 totalAmount不带引号)
b.证书问题(证书如果带-----BEGIN CERTIFICATE与-----END CERTIFICATE独占一行 别跟在后面,影响验签结果。)
c.加签方式不对(js加签如果证书原文没问题一定可以过,不可以用法人卡要用操作员卡)

2.上报数据时,如果提示"签名验证根证书失败"?

a.请检查证书是否完整,有的没有复制完整
b.证书格式是否标准
c.证书是否已过期,有这样的

3.接口正式上报地址是什么?

https://customs.chinaport.gov.cn/ceb2grab/grab/realTimeDataUpload

4.还有没有测试联调地址了?

没有了,用正式地址测

5.{“code”:“20004”,“message”:“企业实时数据获取验签证书未在服务系统注册”,“total”:0,“serviceTime”:1500000000000}

1)检查证书编号是否已填写, 检查证书是否已上传!

2)检查填写的ebpcode与certno是否与 上传的一致!

6.{"code":"20005","message":"验签失败","total":0,"serviceTime":1500000000000}

参与验签的字符串参数类型及顺序必须与例子一致,注意特殊字符处理

7.{"code":"20000","message":"上传失败 java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 76 path $.payExchangeInfoHead","total":0,"serviceTime":1612158677093}

说明上传的参数不符合标准

8.{"code":"20008","message":"签名验证根证书失败","total":0,"serviceTime":1611820873686}

上传的证书不完整或者格式错误!

9.{"code":"10000","message":"上传成功","total":0,"serviceTime":1611628994529}

这表示ok了

10.{ "code": "20006", "message": "上传失败,入库失败 java.sql.SQLException: ORA-01400: 无法将 NULL 插入 (\"GUID        \")", "total": 0, "serviceTime": 1609139628410}