海关179号公文接入

179号公文对接 上海公服示例package net.shop.controller.admin.warehouse;import cn.hutool.core.codec.Base64;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import net.shop.util.WebUtils;import org.apa
摘要由CSDN通过智能技术生成

179号公文对接 上海公服示例

package net.shop.controller.admin.warehouse;


import cn.hutool.core.codec.Base64;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import net.shop.util.WebUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.apache.poi.ss.formula.functions.T;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.Assert;

import javax.net.ssl.*;
import javax.transaction.Transactional;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.*;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.*;

public class test {
   
    
    // 公服加签地址 线上:
    private String GONGFU_SIGN_URL = "https://www.shcepp.com/cepsi/ceppSignInter";

    //给海关发送支付信息 线上:
    private String HAIGUAN_SEND_PAY_INFO = "https://customs.chinaport.gov.cn/ceb2grab/grab/realTimeDataUpload";

    @Transactional
    public void operateGrapInfo(String orderNo, GrapInfo grapInfo, PayInfo payInfo) {
   
        String method = "《海关数据中心抓取数据-定时任务-扫描未发送给数据中心的抓取信息表》";
        JsonUtils jsonUtils = new JsonUtils();
        //封装edata信息
        HashMap<String, Object> EData = initEData(orderNo);
        //封装 payExchangeInfoHead信息
        HashMap<String, Object> payExchangeInfoHead = initPayExchangeInfoHead(payInfo);
        ArrayList<Map<String, Object>> payExchangeInfoList = new ArrayList<>();
        initPayExchangeInfoList(orderNo, payInfo, payExchangeInfoList);
        HashMap<String, Object> payExInfoStr = new HashMap<>();
        initPayExInfoStr(grapInfo, payExchangeInfoHead, payExchangeInfoList, payExInfoStr);
        // 转换JSON
        String EDataJson = jsonUtils.toJson(EData);
        String payExInfoStrJson = jsonUtils.toJson(payExInfoStr);
        // 编码
        EDataJson = cn.hutool.core.codec.Base64.encode(EDataJson, "UTF-8");
        payExInfoStrJson = Base64.encode(payExInfoStrJson, "UTF-8");
        // MD5( req + key).upper()
        String reqString = jsonUtils.toJson(EData);
        String md5 = DigestUtils.md5Hex(reqString + "工服的秘钥  或者电子口岸的秘钥");
        String SignMsg = md5.toUpperCase();
        // 封装参数体
        Map<String, Object> parameter = new HashMap<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/api/USB 接口地址 常见错误结果和解决方法: 下面凑字数 {“code”:“20004”,“message”:“企业实时数据获取验签证书未在服务系统注册”,“total”:0,“serviceTime”:1500000000000} 得到这个结果,说明证书没有注册,测试环境联系管理员,生产环境需要到单一窗口去注册上传。如果已经上传了的,去看看你填的ebpCode是否是你自己的。 {“code”:“20000”,“message”:“上传失败 java.lang.IllegalStateException: xxxx这里是错误信息内容”,“total”:0,“serviceTime”:1500000000000} 这个错误说明上传的数据格式不对,海关系统无法解析,注意看看是否有字段类型或者格式错误,也注意看具体看错误内容,一般都有提示。 {“code”:“20005”,“message”:“验签失败”,“total”:0,“serviceTime”:1500000000000} 得到这个信息,说明上传的内容格式没问题了,验签失败,可能加签过程不对,一般都是字符串或者加签格式不对导致的,相见加签部分的细节,注意比对加签内容的格式和样例是否一致。另外也要看看用得证书什么的有没有问题。 {“code”:“20006”,“message”:“上传失败,入库失败 java.sql.SQLException: ORA-00001: 违反唯一约束条件 (sessionID重复)”,“total”:0,“serviceTime”:1500000000000} 得到这个消息,恭喜你,测试基本成功了:加签成功、数据格式没有问题了,接下来就可以自己生成模拟数据去测试了。 {“code”:“10000”,“message”:“上传成功”,“total”:0,“serviceTime”:1500000000000} 恭喜,测试成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值