From e280e37ddecde92c97d21f783f1cae9074146203 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 27 八月 2025 14:51:05 +0800
Subject: [PATCH] 条码接口测试
---
src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 200 insertions(+), 2 deletions(-)
diff --git a/src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java b/src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java
index 3b4e7cd..297f9b1 100644
--- a/src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java
+++ b/src/test/java/com/gs/xiaomi/XiaomiApplicationTests.java
@@ -1,12 +1,22 @@
package com.gs.xiaomi;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.digest.DigestUtil;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gs.xiaomi.config.DataAcquisitionConfiguration;
import com.gs.xiaomi.dto.BCS101Request;
import com.gs.xiaomi.service.BCS101ApiService;
import com.gs.xiaomi.service.XM104Service;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Base64;
+import java.util.Date;
@SpringBootTest
class XiaomiApplicationTests {
@@ -36,8 +46,8 @@
void testBCS101ApiService() throws Exception {
// 鍒涘缓娴嬭瘯璇锋眰鍙傛暟
BCS101Request request = new BCS101Request();
- request.setSupplierId("100071");
- request.setDocNo("9311991542");
+ request.setSupplierId("177301");
+ request.setDocNo("9311036039");
request.setDocType("ASNGR");
request.setPageNo(1);
request.setPageSize(1000);
@@ -104,4 +114,192 @@
e.printStackTrace();
}
}
+
+ @Test
+ void test1() throws UnsupportedEncodingException, JsonProcessingException {
+ // 鍒涘缓娴嬭瘯璇锋眰瀵硅薄
+ BCS101Request request = new BCS101Request();
+ request.setSupplierId("177301");
+ request.setDocNo("9311036039");
+ request.setDocType("ASNGR");
+ request.setPageNo(1);
+ request.setPageSize(1000);
+
+
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ System.out.println("=== BCS101 API 瀹為檯璇锋眰鍙傛暟璇︽儏 ===\n");
+
+ //鏃堕棿
+ String yyyyMMddHHmmss = DateUtil.format(new Date(), "yyyyMMddHHmmss");
+ System.out.println(yyyyMMddHHmmss);
+
+ // 1. 鍘熷JSON鏁版嵁
+ String jsonData = objectMapper.writeValueAsString(request);
+ System.out.println("1. 鍘熷JSON鏁版嵁:");
+ System.out.println(jsonData);
+ System.out.println();
+
+ // 2. Base64缂栫爜
+ String base64Data = Base64.getEncoder().encodeToString(jsonData.getBytes("UTF-8"));
+ System.out.println("2. Base64缂栫爜鍚�:");
+ System.out.println(base64Data);
+ System.out.println();
+
+ // 3. URL缂栫爜
+ String urlEncodedData = URLEncoder.encode(base64Data, "UTF-8");
+ System.out.println("3. URL缂栫爜鍚�:");
+ System.out.println(urlEncodedData);
+ System.out.println();
+
+ // 4. Form鏁版嵁
+ String formData = "data=" + urlEncodedData;
+ System.out.println("4. Form鏁版嵁 (璇锋眰Body):");
+ System.out.println(formData);
+ System.out.println();
+
+ // 5. 璇锋眰URL
+ System.out.println("5. 璇锋眰URL:");
+ System.out.println(DataAcquisitionConfiguration.BCS_101_URL);
+ System.out.println();
+
+ // 6. Basic Auth
+ String credentials = DataAcquisitionConfiguration.BCS_USER_NAME + ":" + DataAcquisitionConfiguration.BCS_PWD;
+ String auth = Base64.getEncoder().encodeToString(credentials.getBytes("UTF-8"));
+ System.out.println("6. Basic Auth淇℃伅:");
+ System.out.println("鐢ㄦ埛鍚�: " + DataAcquisitionConfiguration.BCS_USER_NAME);
+ System.out.println("瀵嗙爜: " + DataAcquisitionConfiguration.BCS_PWD);
+ System.out.println("Base64缂栫爜: " + auth);
+ System.out.println();
+
+ // 7. X5鍗忚鍙傛暟
+ String appId = DataAcquisitionConfiguration.BCS_APP_ID;
+ String appKey = DataAcquisitionConfiguration.BCS_APP_Key;
+ long timestamp = System.currentTimeMillis() / 1000;
+
+ System.out.println("7. X5鍗忚鍙傛暟:");
+ System.out.println("App ID: " + appId);
+ System.out.println("App Key: " + appKey);
+ System.out.println("Timestamp: " + timestamp);
+ System.out.println();
+
+ // 8. X5绛惧悕璁$畻
+ String signString = appId + appKey + timestamp + formData;
+ String signature;
+ try {
+ signature = SmUtil.sm3(signString).toUpperCase();
+ System.out.println("8. X5绛惧悕 (浣跨敤SM3):");
+ } catch (Exception e) {
+ signature = DigestUtil.md5Hex(signString).toUpperCase();
+ System.out.println("8. X5绛惧悕 (浣跨敤MD5):");
+ }
+ System.out.println("绛惧悕瀛楃涓�: " + signString);
+ System.out.println("绛惧悕鍊�: " + signature);
+ System.out.println();
+
+ // 9. 瀹屾暣鐨凥TTP璇锋眰澶�
+ System.out.println("9. 瀹屾暣鐨凥TTP璇锋眰澶�:");
+ System.out.println("Content-Type: application/x-www-form-urlencoded");
+ System.out.println("Authorization: Basic " + auth);
+ System.out.println("X-App-Id: " + appId);
+ System.out.println("X-Timestamp: " + timestamp);
+ System.out.println("X-Signature: " + signature);
+ System.out.println();
+
+ // 10. 瀹屾暣鐨刢URL鍛戒护绀轰緥
+ System.out.println("10. 瀹屾暣鐨刢URL鍛戒护绀轰緥:");
+ System.out.println("curl -X POST \\");
+ System.out.println(" '" + DataAcquisitionConfiguration.BCS_101_URL + "' \\");
+ System.out.println(" -H 'Content-Type: application/x-www-form-urlencoded' \\");
+ System.out.println(" -H 'Authorization: Basic " + auth + "' \\");
+ System.out.println(" -H 'X-App-Id: " + appId + "' \\");
+ System.out.println(" -H 'X-Timestamp: " + timestamp + "' \\");
+ System.out.println(" -H 'X-Signature: " + signature + "' \\");
+ System.out.println(" -d '" + formData + "'");
+ System.out.println();
+
+ // 11. Postman鏍煎紡
+ System.out.println("11. Postman娴嬭瘯鏍煎紡:");
+ System.out.println("Method: POST");
+ System.out.println("URL: " + DataAcquisitionConfiguration.BCS_101_URL);
+ System.out.println("Headers:");
+ System.out.println(" Content-Type: application/x-www-form-urlencoded");
+ System.out.println(" Authorization: Basic " + auth);
+ System.out.println(" X-App-Id: " + appId);
+ System.out.println(" X-Timestamp: " + timestamp);
+ System.out.println(" X-Signature: " + signature);
+ System.out.println("Body (x-www-form-urlencoded):");
+ System.out.println(" data: " + urlEncodedData);
+ System.out.println();
+
+ // 12. 瀹為檯璋冪敤API骞惰幏鍙栧搷搴�
+ System.out.println("12. === 瀹為檯API璋冪敤鍜屽搷搴� ===");
+ StringBuilder responseResult = new StringBuilder();
+
+ System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛圔asic Auth鐗堟湰锛� ===");
+ try {
+ String response = bcs101ApiService.getBCS101Data(request);
+ System.out.println("BCS101 API Response: " + response);
+ responseResult.append("Basic Auth鍝嶅簲: ").append(response.length()).append("瀛楃; ");
+ } catch (Exception e) {
+ System.out.println("BCS101 API璋冪敤寮傚父: " + e.getMessage());
+ responseResult.append("Basic Auth寮傚父: ").append(e.getMessage()).append("; ");
+ }
+
+ System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛堝甫X5鍗忚鐗堟湰锛� ===");
+ try {
+ String responseWithX5 = bcs101ApiService.getBCS101DataWithX5(request, true);
+ System.out.println("BCS101 API Response (X5): " + responseWithX5);
+ responseResult.append("X5鍗忚鍝嶅簲: ").append(responseWithX5.length()).append("瀛楃; ");
+ } catch (Exception e) {
+ System.out.println("BCS101 API X5璋冪敤寮傚父: " + e.getMessage());
+ responseResult.append("X5鍗忚寮傚父: ").append(e.getMessage()).append("; ");
+ }
+
+ System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛堣皟璇曠増鏈級 ===");
+ try {
+ String debugResponse = bcs101ApiService.getBCS101DataDebug(request);
+ System.out.println("BCS101 API Debug Response: " + debugResponse);
+ responseResult.append("璋冭瘯鐗堟湰鍝嶅簲: ").append(debugResponse.length()).append("瀛楃; ");
+ } catch (Exception e) {
+ System.out.println("BCS101 API 璋冭瘯鐗堟湰璋冪敤寮傚父: " + e.getMessage());
+ responseResult.append("璋冭瘯鐗堟湰寮傚父: ").append(e.getMessage()).append("; ");
+ }
+
+ System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛堢畝鍖栫増鏈級 ===");
+ try {
+ String simpleResponse = bcs101ApiService.getBCS101DataSimple(request);
+ System.out.println("BCS101 API Simple Response: " + simpleResponse);
+ responseResult.append("绠�鍖栫増鏈搷搴�: ").append(simpleResponse.length()).append("瀛楃; ");
+ } catch (Exception e) {
+ System.out.println("BCS101 API 绠�鍖栫増鏈皟鐢ㄥ紓甯�: " + e.getMessage());
+ responseResult.append("绠�鍖栫増鏈紓甯�: ").append(e.getMessage()).append("; ");
+ }
+
+ System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛圶5鍗忚鏍囧噯鐗堟湰锛� ===");
+ try {
+ String x5StandardResponse = bcs101ApiService.getBCS101DataX5Standard(request);
+ System.out.println("BCS101 API X5Standard Response: " + x5StandardResponse);
+ responseResult.append("X5鏍囧噯鐗堟湰鍝嶅簲: ").append(x5StandardResponse.length()).append("瀛楃; ");
+ } catch (Exception e) {
+ System.out.println("BCS101 API X5鏍囧噯鐗堟湰璋冪敤寮傚父: " + e.getMessage());
+ responseResult.append("X5鏍囧噯鐗堟湰寮傚父: ").append(e.getMessage()).append("; ");
+ }
+
+ System.out.println("\n=== 娴嬭瘯BCS101 API鏈嶅姟锛圶5鍗忚鍙樹綋鐗堟湰锛� ===");
+ try {
+ String x5VariantResponse = bcs101ApiService.getBCS101DataX5Variant(request);
+ System.out.println("BCS101 API X5Variant Response: " + x5VariantResponse);
+ responseResult.append("X5鍙樹綋鐗堟湰鍝嶅簲: ").append(x5VariantResponse.length()).append("瀛楃; ");
+ } catch (Exception e) {
+ System.out.println("BCS101 API X5鍙樹綋鐗堟湰璋冪敤寮傚父: " + e.getMessage());
+ responseResult.append("X5鍙樹綋鐗堟湰寮傚父: ").append(e.getMessage()).append("; ");
+ }
+
+ // 杩斿洖姹囨�讳俊鎭�
+ String summary = String.format("璇锋眰鍙傛暟[渚涘簲鍟咺D: %s, 鍗曟嵁鍙�: %s, 绛惧悕: %s, 鏃堕棿鎴�: %d] | 鍝嶅簲姹囨�籟%s]",
+ request.getSupplierId(), request.getDocNo(), signature, timestamp, responseResult.toString());
+ System.out.println("\n=== 娴嬭瘯姹囨�� ===");
+ System.out.println(summary);
+ }
}
--
Gitblit v1.9.3