tjx
2025-10-29 1385843c8a9d39bc6835b9845ea1092b3e8f2bb3
更新为正式环境配置
已修改3个文件
36 ■■■■■ 文件已修改
src/main/java/com/gs/xiaomi/config/DataAcquisitionConfiguration.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/gs/xiaomi/service/BCS101ApiService.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/gs/xiaomi/config/DataAcquisitionConfiguration.java
@@ -18,14 +18,20 @@
    //public static final String XM104_URL = "https://mipoq.p.mi.com/XISOAPAdapter/MessageServlet?p=ic/9e8a118fb0b7379aa11c2a5c2860982a&senderParty=&senderService=ZJ_XIAOBU_QAS&receiverParty=&receiverService=&interface=SI_ZFM_WS_API_OUT&interfaceNamespace=http://xiaomi.com/srm/b2b"; //测试
    //=====================条码获取
    public static final String BCS_101_URL = "https://mipoq.p.mi.com/HttpAdapter/HttpMessageServlet?interfaceNamespace=http://xiaomi.com/bcs/dummy&interface=SI_MI_BCS_IF101_GET_SN_S_OUT&senderService=ZJ_XIAOBU_QAS&qos=BE"; //测试
    //测试
    //public static final String BCS_101_URL = "https://mipoq.p.mi.com/HttpAdapter/HttpMessageServlet?interfaceNamespace=http://xiaomi.com/bcs/dummy&interface=SI_MI_BCS_IF101_GET_SN_S_OUT&senderService=ZJ_XIAOBU_QAS&qos=BE"; //测试
    public static final String BCS_USER_NAME = "RFCBCSXIAOBU"; //测试
    public static final String BCS_PWD = "L5X8!pdL"; //测试
    //正式
    public static final String BCS_101_URL = "https://mipnp.p.mi.com/HttpAdapter/HttpMessageServlet?interfaceNamespace=http://xiaomi.com/bcs/dummy&interface=SI_MI_BCS_IF101_GET_SN_S_OUT&senderService=ZJ_XIAOBU_PRD&qos=BE";
    public static final String BCS_USER_NAME = "RFCBCSXIAOBU";
//    public static final String BCS_PWD = "L5X8!pdL"; //测试
    public static final String BCS_PWD = "ab%85U!N"; //正式
    //X5协议
    public static final String BCS_APP_ID = "bcs_fty_177301"; //测试
    public static final String BCS_APP_Key = "IJBVGMJXG4ZTAMLSMFXGI33NONQWY5DG"; //测试
    public static final String BCS_APP_ID = "bcs_fty_177301";
//    public static final String BCS_APP_Key = "IJBVGMJXG4ZTAMLSMFXGI33NONQWY5DG"; //测试
    public static final String BCS_APP_Key = "7ea40b9ac4014c938050fc70ed4ff0fd"; //正式
    public static String getIvPass(String ivCode) {
src/main/java/com/gs/xiaomi/service/BCS101ApiService.java
@@ -51,15 +51,15 @@
            // 1. 序列化Body为JSON字符串
            String bodyStr = objectMapper.writeValueAsString(request);
            System.out.println("1. Body JSON: " + bodyStr);
            //System.out.println("1. Body JSON: " + bodyStr);
            // 2. MD5签名: sign = MD5(appid + bodyStr + appkey)
            String appId = DataAcquisitionConfiguration.BCS_APP_ID;
            String appKey = DataAcquisitionConfiguration.BCS_APP_Key;
            String signString = appId + bodyStr + appKey;
            String sign = DigestUtil.md5Hex(signString).toUpperCase();
            System.out.println("2. 签名字符串: " + signString);
            System.out.println("3. MD5签名: " + sign);
            //System.out.println("2. 签名字符串: " + signString);
            //System.out.println("3. MD5签名: " + sign);
            // 3. 构建X5Header
            X5Header header = new X5Header(appId, sign);
@@ -67,24 +67,24 @@
            // 4. 构建X5Request
            X5Request x5Request = new X5Request(header, bodyStr);
            String x5RequestJson = objectMapper.writeValueAsString(x5Request);
            System.out.println("4. X5Request JSON: " + x5RequestJson);
            //System.out.println("4. X5Request JSON: " + x5RequestJson);
            // 5. Base64编码整个X5Request
            String base64Data = X5StringUtils.encodeBase64(x5RequestJson);
            System.out.println("5. Base64编码: " + base64Data);
            //System.out.println("5. Base64编码: " + base64Data);
            // 6. URL编码
            String urlEncodedData = URLEncoder.encode(base64Data, "UTF-8");
            System.out.println("6. URL编码: " + urlEncodedData);
           // System.out.println("6. URL编码: " + urlEncodedData);
            // 7. 构建form表单数据: data=url编码(base64编码)的数据
            String formData = "data=" + urlEncodedData;
            System.out.println("7. Form数据: " + formData);
            //System.out.println("7. Form数据: " + formData);
            // 8. Basic Auth认证
            String credentials = DataAcquisitionConfiguration.BCS_USER_NAME + ":" + DataAcquisitionConfiguration.BCS_PWD;
            String auth = X5StringUtils.encodeBase64(credentials);
            System.out.println("8. Basic Auth: Basic " + auth);
           // System.out.println("8. Basic Auth: Basic " + auth);
            // 9. 构建HTTP请求 - 严格按照C#代码的请求格式
            RequestBody body = RequestBody.create(formData, MediaType.parse("application/x-www-form-urlencoded"));
@@ -98,7 +98,7 @@
                    .addHeader("Pragma", "no-cache")
                    .build();
            System.out.println("9. 发送X5协议请求到: " + DataAcquisitionConfiguration.BCS_101_URL);
            //System.out.println("9. 发送X5协议请求到: " + DataAcquisitionConfiguration.BCS_101_URL);
            // 10. 执行请求
            try (Response response = client.newCall(httpRequest).execute()) {
src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java
@@ -46,7 +46,7 @@
        // 创建测试请求参数
        BCS101Request request = new BCS101Request();
        request.setSupplierId("177301");
        request.setDocNo("9311036039");
        request.setDocNo("9316716044");
        request.setDocType("ASNGR");
        request.setPageNo(1);
        request.setPageSize(1000);