From 4b26316398729b3071d39408268cb52e05c85f4d Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期三, 20 八月 2025 15:18:31 +0800 Subject: [PATCH] 条码接口测试 --- src/main/java/com/gs/xiaomi/service/BCS101ApiService.java | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gs/xiaomi/service/BCS101ApiService.java b/src/main/java/com/gs/xiaomi/service/BCS101ApiService.java index 8b16f88..7c157cc 100644 --- a/src/main/java/com/gs/xiaomi/service/BCS101ApiService.java +++ b/src/main/java/com/gs/xiaomi/service/BCS101ApiService.java @@ -1,5 +1,6 @@ package com.gs.xiaomi.service; +import cn.hutool.crypto.digest.DigestUtil; import com.fasterxml.jackson.databind.ObjectMapper; import com.gs.xiaomi.config.DataAcquisitionConfiguration; import com.gs.xiaomi.dto.BCS101Request; @@ -32,6 +33,11 @@ * @param request BCS101璇锋眰鍙傛暟 * @return API鍝嶅簲 * @throws IOException 缃戠粶寮傚父 + * 鎺ュ彛杩斿洖 + * Error: ERROR_IN_MODULECHAIN;ERROR_IN_MODULECHAIN, Sender Channel 'CC_MI_OEM_HTTP_OUT' (ID: a58369adbaa03aafb76d2c02c2ae7cd7): Catching exception calling messaging system + * 鎴戞槸闇�瑕乆5鍗忚鐨勶紝 鎴戠湅浣犳病鏈変负鎴戞坊鍔� + * APP ID锛歜cs_fty_177301 + * APP Key锛欼JBVGMJXG4ZTAMLSMFXGI33NONQWY5DG */ public String getBCS101Data(BCS101Request request) throws IOException { // 鐩存帴灏嗚姹傚璞¤浆鎹负JSON瀛楃涓� @@ -46,6 +52,17 @@ // 鏋勫缓form琛ㄥ崟鏁版嵁 String formData = "data=" + urlEncodedData; + // 鐢熸垚鏃堕棿鎴� + String timestamp = String.valueOf(System.currentTimeMillis() / 1000); + + // 鐢熸垚X5绛惧悕 + String signature = generateX5Signature( + DataAcquisitionConfiguration.BCS_APP_ID, + DataAcquisitionConfiguration.BCS_APP_Key, + timestamp, + formData + ); + // 鏋勫缓Authorization header String credentials = DataAcquisitionConfiguration.BCS_USER_NAME + ":" + DataAcquisitionConfiguration.BCS_PWD; String auth = X5StringUtils.encodeBase64(credentials); @@ -59,6 +76,9 @@ .method("POST", body) .addHeader("Content-Type", "application/x-www-form-urlencoded") .addHeader("Authorization", "Basic " + auth) + .addHeader("X-App-Id", DataAcquisitionConfiguration.BCS_APP_ID) + .addHeader("X-Timestamp", timestamp) + .addHeader("X-Signature", signature) .build(); // 鎵ц璇锋眰 @@ -69,4 +89,19 @@ throw new IOException("Empty response body"); } } + + /** + * 鐢熸垚X5鍗忚绛惧悕 + * + * @param appId APP ID + * @param appKey APP Key + * @param timestamp 鏃堕棿鎴� + * @param data 璇锋眰鏁版嵁 + * @return 绛惧悕瀛楃涓� + */ + private String generateX5Signature(String appId, String appKey, String timestamp, String data) { + // X5绛惧悕绠楁硶: MD5(appId + appKey + timestamp + data) + String signString = appId + appKey + timestamp + data; + return DigestUtil.md5Hex(signString).toUpperCase(); + } } -- Gitblit v1.9.3