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