海关179对接终极版介绍 海关179证书导出工具下载 正式版EXE请联系:alexyu01(微信号),华仔,加微信二维码 >>海关报关流程及179对接方案 >>海关报关全能版(179+海关推单)
一款兼容所有服务端语言(JAVA,PHP,ASP.NET,PYTHON等)的海关179自动上报客户端。PHP的提供服务端包括支付报关和商品预览页,对接改动不超过10行代码
客户端解决了所有能让人对接到崩溃的坑,屏蔽了技术实现细节,只需要按要求简单组装数据返回给客户端便可,让对接变的简单、快速,节省对接时间!
另有封装好的 微信支付,支付宝,通联支付,广州合利宝支付等支付报关程序,
关于作者:
十年以上的PHP开发经验 >>详细介绍, 自己开发PHP框架Rocketphp Github,项目经验丰富,可定制开发跨境商城/报关系统,提供报关咨询等服务,
可提供179全程代办服务,用远程工具帮注册,导出证书,协助对接等,欢迎咨询合作!
第一步,
平台开发海关请求接收接口
说明:接收处理海关请求,请求方式为post方式(x-www-form-urlencoded),从请求中获取openReq参数的值,该参数值是一个符合json标准的字符串。
将收到的orderNo和sessionID存起来,供后续使用,并在2分钟内按要求上报给海关
服务地址必须是http开头的,不能带端口号,只能是默认的80端口,不能是https
海关请求的UserAgent:Apache-HttpClient/4.5.3 (Java/1.8.0_60),注意有的宝塔/nginx 会拦截useragent,返回403
[必须只能]返回如下数据(即使不存在的订单号):否则审核不通过
返回header为: Content-Type:application/json; charset=utf-8;
数据格式为json: {"code":"10000","message":"","serviceTime":1567050097628}
服务地址:  填入海关系统注册的服务地址,请使用外网地址
orderNo:  填入自己平台的订单号
sessionID:  更换sessionID
模拟请求返回结果
终极版功能点及流程架构 客户端优势:免安装,无依赖,无需配计划任务,自带定时器,直接配置运行,稳定可靠
客户端功能:自动获取任务,自动加签,自动上报,20秒请求一次加签数据 30秒之内上报海关
服务端对接:PHP语言的的提供服务端代码包,只需要实现订单查询一个接口即可完成对接! PHP代码示例 终极版PHP对接流程 服务端演示 PHP版服务端下载请联系(微信:alexyu01)
其他语言对接,按要求完成第一、二、三步对接,即可完成终极版对接!终极版Java/.NET及其他语言对接流程 零侵入系统
另有,上海公服179上报和成都公服179上报PHP代码
第二步,
平台开发订单数据下发接口
接口应将第一步收到的订单查询,按示例格式将需报海关的订单数据返回给客户端
这部分是有正式版EXE联调使用,没有的只能使用第一步
说明:客户端每隔30秒(可配置),请求该接口
请求方式为POST(x-www-form-urlencoded),请求参数有2个:
1.timestamp:时间戳,可通过时间间隔来验证是不是历史请求,单位秒
2.sign:md5(timestamp+signkey),加号是连接符的意思,MD5签名算法,32位小写字母和数字
用于安全验证,保证是来自于客户端的请求,sign的值应该等于,也可不验证,如果搞不清楚签名意思,可直接返回数据,不用验证签名
相关文档: 支付原始数据及报关参数 微信支付报关接口 支付宝报关接口 参数详解
数据来源:initalRequest,initalResponse,来自支付sdk
payTransactionId,verDept,来自于支付报关
有数据返回:数据格式为json,一次最多可返回15条订单数据,返回的是一个list, Json数据结构图
[{"initalRequest": "支付原始请求:微信是xml,支付宝是url", "initalResponse": "支付原始返回","payTransactionId": "交易流水号(支付报关时有返回,微信:verify_department_trade_id,支付宝:pay_transaction_id)","verDept": "验核机构(支付报关结果会返回,对应参数:支付宝:ver_dept,微信:verify_department),1-银联 2-网联 3-其他", "totalAmount": "订单实际支付总金额,如:1564.84,单位元", "tradingTime": "交易成功时间,如:20190522160003", "goods": [ { "gname": "商品名称,如:当归口服液 Hemohim ( 4 盒 )", "itemLink": "商品展示链接地址,app或小程序的要单独做web页,如:http:///?a=viewgoods&id=307" } ], "ebpCode": "电商平台十位海关编码","payCode": "第三方支付企业十位海关编码:4403169D3W(微信),31222699S7(支付宝)", "currency": "币制编码:填142", "recpAccount": "电商平台的对公银行卡号(在支付企业登记的)", "recpName": "收款企业名称(电商平台企业全称)", "orderNo": "第一步请求的平台订单号", "sessionID": "第一步请求的sessionID"}]
无数据返回:
[]
数据下发接口地址:  请使用外网地址
signkey:  与客户端保持一致
订单查询返回结果
第三步,
平台开发上报结果回调接口
根据回调结果做相应处理
如果上报成功,不再下发数据
说明:当客户端上报海关完成或客户端有错误时,会将上报结果或错误通过接口回调给平台
回调请求方式为:POST(x-www-form-urlencoded),接口应返回:success ,如果不返回success,客户端会每隔2分钟(可配置callbackInterval)重复回调5次(可配置callbackTimes)
接口返回:
success
备注:如果不返回success,客户端会每隔2分钟回调5次

>>回调参数分两类

1.客户端报错回调参数2个:
type: ERROR,message:错误信息
2.客户端上报海关完成回调参数4个:
type: POSTBACK,orderNo:订单号,sessionID:海关查询sessionID,result:海关返回的json串,解析出来如果成功,订单改状态不再下发
result海关返回示例:
{"code":"20006","message":"上传失败,入库失败 java.sql.SQLException: ORA-00001: 违反唯一约束条件 (sessionID重复)","total":0,"serviceTime":1567050097628} 表示已通
{"code":"10000","message":"上传成功","total":0,"serviceTime":1567050097628}
回调地址:  请使用外网地址
orderNo:  平台订单号
sessionID:  海关查询sessionID
回调状态:
模拟请求结果
最后 在海关互联网+管理后台,启用注册服务地址。然后保持服务端接口畅通,客户端24小时开启,保持客户端电脑网络畅通,不然客户端领取任务和上报会出现卡顿
客户端配置说明 {
"taskUrl": "http://127.0.0.1:8080/?a=get_order", //领取任务地址,第二步调试的地址
"callbackUrl": "http://127.0.0.1:8080/?a=callback", //结果上报地址,第三步调试的地址
"cardPassword": "88888888", //操作员卡密码
"getTaskInterval": 30, //获取任务的时间间隔,单位秒
"callbackInterval": 120,//回调的时间间隔,返回:success只回调一次,返回错误或不返回,每隔一段时间回调
"callbackTimes": 5,//错误回调次数,返回:success,只回调一次,返回错误或不返回,一直回调次数
"signKey": "alexyu01",//签名key,保证数据下发安全性,在领任务处可校验
"postUrl": "https://customs.chinaport.gov.cn/ceb2grab/grab/realTimeDataUpload" //海关的实时数据上报地址
}