From bb272e1e2c0d4637d6d9ebfefb635662b804b459 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 13 May 2026 17:52:48 +0800
Subject: [PATCH] refactor(okxNewPrice): 账户配置

---
 src/main/java/com/xcong/excoin/modules/okxApi/OkxRestClient.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxApi/OkxRestClient.java b/src/main/java/com/xcong/excoin/modules/okxApi/OkxRestClient.java
index 5c04970..43bdecf 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/OkxRestClient.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxRestClient.java
@@ -44,6 +44,61 @@
         return isSuccess(result, "设置杠杆");
     }
 
+    public String fetchInstIdCode(String instType, String instId) {
+        String path = "/api/v5/account/instruments?instType=" + instType + "&instId=" + instId;
+        JSONObject result = get(path);
+        if (result == null || !"0".equals(result.getString("code"))) {
+            log.error("[REST] 获取instIdCode失败, code:{}, msg:{}",
+                    result != null ? result.getString("code") : "null",
+                    result != null ? result.getString("msg") : "no response");
+            return null;
+        }
+        com.alibaba.fastjson.JSONArray data = result.getJSONArray("data");
+        if (data == null || data.isEmpty()) {
+            log.error("[REST] 获取instIdCode失败: data为空");
+            return null;
+        }
+        JSONObject first = data.getJSONObject(0);
+        String instIdCode = first.getString("instIdCode");
+        log.info("[REST] 获取instIdCode成功, instId:{}, instIdCode:{}", instId, instIdCode);
+        return instIdCode;
+    }
+
+    private JSONObject get(String path) {
+        HttpURLConnection conn = null;
+        try {
+            String timestamp = OkxWsUtil.getIso8601Timestamp();
+            String sign = OkxWsUtil.signRest(timestamp, "GET", path, "", secretKey);
+
+            URL url = new URL(baseUrl + path);
+            conn = (HttpURLConnection) url.openConnection();
+            conn.setRequestMethod("GET");
+            conn.setConnectTimeout(15000);
+            conn.setReadTimeout(15000);
+            conn.setRequestProperty("Content-Type", "application/json");
+            conn.setRequestProperty("OK-ACCESS-KEY", apiKey);
+            conn.setRequestProperty("OK-ACCESS-SIGN", sign);
+            conn.setRequestProperty("OK-ACCESS-TIMESTAMP", timestamp);
+            conn.setRequestProperty("OK-ACCESS-PASSPHRASE", passphrase);
+            if (isSimulate) {
+                conn.setRequestProperty("x-simulated-trading", "1");
+            }
+
+            int code = conn.getResponseCode();
+            String response = readResponse(conn);
+            log.info("[REST] GET {} → HTTP {} body:{}", path, code, response);
+
+            return JSON.parseObject(response);
+        } catch (Exception e) {
+            log.error("[REST] GET {} 失败: {}", path, e.getMessage());
+            return null;
+        } finally {
+            if (conn != null) {
+                conn.disconnect();
+            }
+        }
+    }
+
     private JSONObject post(String path, JSONObject body) {
         HttpURLConnection conn = null;
         try {

--
Gitblit v1.9.1