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}