WEEX官方API開發者文檔v2版-現貨|API接口,配置指南與技術支援

API 域名

您可以自行使用 Rest API 存取方式進行操作。

域名API描述
現貨 rest 域名https://api-spot.weex.com主域名
合約 rest 域名https://api-contract.weex.com主域名

簽名

ACCESS-SIGN 的請求頭是對 timestamp + method.toUpperCase() + requestPath + “?” + queryString + body 字串 (+表示字串連接) 使用 HMAC SHA256 方法加密,透過 BASE64 編碼輸出而得到的。

簽名各欄位說明

  • timestamp:與 ACCESS-TIMESTAMP 請求頭相同。
  • method:請求方法 (POST/GET),字母全部大寫。
  • requestPath:請求接口路徑。
  • queryString:請求 URL中 (?後的請求參數) 的查詢字串。
  • body:請求主體對應的字串,如果請求沒有主體(通常為 GET 請求)則 body 可省略。

queryString 為空時,簽名格式

  • timestamp + method.toUpperCase() + requestPath + body

queryString 不為空時,簽名格式

  • timestamp + method.toUpperCase() + requestPath + “?” + queryString + body

舉例說明

取得深度訊息,以 btcusdt 為例:

  • Timestamp = 1591089508404
  • Method = “GET”
  • requestPath = “/api/v2/market/depth”
  • queryString= “?symbol=btcusdt_spbl&limit=20”

產生待簽章的字串:

  • ‘1591089508404GET/api/v2/market/depth?symbol=btcusdt_spbl&limit=20’

下單,以 btcusdt 為例:

  • Timestamp = 1561022985382
  • Method = “POST”
  • requestPath = “/api/v2/order/order”
  • body =
{"symbol":"btcusdt_spbl","quantity":"8","side":"buy","price":"1","orderType":"limit","clientOrderId":"ww#123456"}

產生待簽章的字串:

'1561022985382POST/api/spotPro/v3/order/order{"symbol":"btcusdt_spbl","size":"8","side":"buy","price":"1","orderType":"limit","clientOrderId":"ww#123456"}'

產生最終簽名的步驟**

  1. 將待簽章字串使用私鑰 secretkey 進行 hmac sha256 加密
    • Signature = hmac_sha256(secretkey, Message)
  2. 對於 Signature 進行 base64 編碼
    • Signature = base64.encode(Signature)

请求交互

package com.weex.lcp.utils;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class ApiClient {
// API信息
private static final String API_KEY = ""; // 替换为实际的 API Key
private static final String SECRET_KEY = ""; // 替换为实际的 Secret Key
private static final String ACCESS_PASSPHRASE = ""; // 替换为实际的 Access Passphrase
private static final String BASE_URL = ""; // 替换为实际的 API 地址
// 生成签名(POST请求)
public static String generateSignature(String secretKey, String timestamp, String method, String requestPath, String queryString, String body) throws Exception {
String message = timestamp + method.toUpperCase() + requestPath + queryString + body;
return generateHmacSha256Signature(secretKey, message);
}
// 生成签名(GET请求)
public static String generateSignatureGet(String secretKey, String timestamp, String method, String requestPath, String queryString) throws Exception {
String message = timestamp + method.toUpperCase() + requestPath + queryString;
return generateHmacSha256Signature(secretKey, message);
}
// 生成 HMAC SHA256 签名
private static String generateHmacSha256Signature(String secretKey, String message) throws Exception {
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(secretKeySpec);
byte[] signatureBytes = mac.doFinal(message.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(signatureBytes);
}
// 发送 POST 请求
public static String sendRequestPost(String apiKey, String secretKey, String accessPassphrase, String method, String requestPath, String queryString, String body) throws Exception {
String timestamp = String.valueOf(System.currentTimeMillis());
String signature = generateSignature(secretKey, timestamp, method, requestPath, queryString, body);
HttpPost postRequest = new HttpPost(BASE_URL + requestPath);
postRequest.setHeader("ACCESS-KEY", apiKey);
postRequest.setHeader("ACCESS-SIGN", signature);
postRequest.setHeader("ACCESS-TIMESTAMP", timestamp);
postRequest.setHeader("ACCESS-PASSPHRASE", accessPassphrase);
postRequest.setHeader("Content-Type", "application/json");
postRequest.setHeader("locale", "zh-CN");
StringEntity entity = new StringEntity(body, StandardCharsets.UTF_8);
postRequest.setEntity(entity);
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
CloseableHttpResponse response = httpClient.execute(postRequest);
return EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
}
}
// 发送 GET 请求
public static String sendRequestGet(String apiKey, String secretKey, String accessPassphrase, String method, String requestPath, String queryString) throws Exception {
String timestamp = String.valueOf(System.currentTimeMillis());
String signature = generateSignatureGet(secretKey, timestamp, method, requestPath, queryString);
HttpGet getRequest = new HttpGet(BASE_URL + requestPath+queryString);
getRequest.setHeader("ACCESS-KEY", apiKey);
getRequest.setHeader("ACCESS-SIGN", signature);
getRequest.setHeader("ACCESS-TIMESTAMP", timestamp);
getRequest.setHeader("ACCESS-PASSPHRASE", accessPassphrase);
getRequest.setHeader("Content-Type", "application/json");
getRequest.setHeader("locale", "zh-CN");
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
CloseableHttpResponse response = httpClient.execute(getRequest);
return EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
}
}
// 示例调用
public static void main(String[] args) {
try {
// GET 请求示例
String requestPath = "/api/uni/v3/order/currentPlan";
String queryString = "?symbol=cmt_bchusdt&delegateType=0&startTime=1742213127794&endTime=1742213506548";
String response = sendRequestGet(API_KEY, SECRET_KEY, ACCESS_PASSPHRASE, "GET", requestPath, queryString);
System.out.println("GET Response: " + response);
// POST 请求示例
String body = "{\"symbol\": \"ETHUSDT_SPBL\", \"limit\": \"2\"}";
response = sendRequestPost(API_KEY, SECRET_KEY, ACCESS_PASSPHRASE, "POST", requestPath, "", body);
System.out.println("POST Response: " + response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
import time
import hmac
import hashlib
import base64
import requests
import json

api_key = ""
secret_key = ""
access_passphrase = ""

def generate_signature(secret_key, timestamp, method, request_path, query_string, body): message = timestamp + method.upper() + request_path + query_string + str(body)
signature = hmac.new(secret_key.encode(), message.encode(), hashlib.sha256).digest()
print(base64.b64encode(signature).decode())
return base64.b64encode(signature).decode()

def generate_signature_get(secret_key, timestamp, method, request_path, query_string):
message = timestamp + method.upper() + request_path + query_string
signature = hmac.new(secret_key.encode(), message.encode(), hashlib.sha256).digest()
# print(base64.b64encode(signature).decode())
return base64.b64encode(signature).decode()

def send_request_post(api_key, secret_key, access_passphrase, method, request_path, query_string, body):
timestamp = str(int(time.time() * 1000))
# print(timestamp)

body = json.dumps(body)
signature = generate_signature(secret_key, timestamp, method, request_path, query_string, body)

headers = {
    "ACCESS-KEY": api_key,
    "ACCESS-SIGN": signature,
    "ACCESS-TIMESTAMP": timestamp,
    "ACCESS-PASSPHRASE": access_passphrase,
    "Content-Type": "application/json",
    "locale": "zh-CN"
}

url = "https://contract-openapi.weex.com"  # 请替换为实际的API地址
if method == "GET":
    response = requests.get(url + request_path, headers=headers)
elif method == "POST":
    response = requests.post(url + request_path, headers=headers, data=body)
return response

def send_request_get(api_key, secret_key, access_passphrase, method, request_path, query_string):
timestamp = str(int(time.time() * 1000))
# print(timestamp)

signature = generate_signature_get(secret_key, timestamp, method, request_path, query_string)

headers = {
    "ACCESS-KEY": api_key,
    "ACCESS-SIGN": signature,
    "ACCESS-TIMESTAMP": timestamp,
    "ACCESS-PASSPHRASE": access_passphrase,
    "Content-Type": "application/json",
    "locale": "zh-CN"
}

url = "https://contract-openapi.weex.com"  # 请替换为实际的API地址
if method == "GET":
    response = requests.get(url + request_path, headers=headers)
return response

# 示例调用 GET 请求

request_path = "/api/spot/v1/account/assets"

# request_path = "/api/spot/v1/public/currencies" # 查看币对列表

query_string = ''
body = ''
response = send_request_get(api_key, secret_key, access_passphrase, "GET", request_path, query_string)

# 示例调用 POST 请求
# request_path = "/api/spot/v1/trade/fills"
# body = {"symbol": "ETHUSDT_SPBL", "limit": "2"}
# query_string = ""
# response = send_request_post(api_key, secret_key, access_passphrase, "POST", request_path, query_string, body)

print(response.status_code)
print(response.text)

所有請求基於Https協議,請求頭資訊中 Content-Type 需要統一設定為: ‘application/json’。

請求互動說明

  • 請求參數:根據接口請求參數規定進行參數封裝。
  • 提交請求參數:將封裝好的請求參數透過GET/POST方式提交至伺服器。
  • 伺服器回應:伺服器首先對使用者請求資料進行參數安全校驗,透過校驗後根據業務邏輯將回應資料以JSON格式傳回給使用者。
  • 資料處理:對伺服器回應資料進行處理。

成功

HTTP 狀態碼 200 表示成功回應,並可能包含內容。如果回應含有內容,則會顯示在對應的回傳內容裡面。

常見錯誤碼

  • 400 Bad Request – Invalid request format 請求格式無效
  • 401 Unauthorized – Invalid API Key 無效的API Key
  • 403 Forbidden – You do not have access to the requested resource 請求無權
  • 404 Not Found 沒有找到請求
  • 429 Too Many Requests 請求太頻繁被系統限流
  • 500 Internal Server Error – We had a problem with our server 伺服器內部錯誤
  • 如果失敗body帶有錯誤描述訊息

標準規範

時間戳

請求簽名中的 ACCESS-TIMESTAMP 的單位是毫秒。請求的時間戳記必須在 API 服務時間的 30 秒內,否則請求將被視為過期並被拒絕。 如果本地伺服器時間和API伺服器時間之間存在較大的偏差,那麼我們建議您使用透過查詢API伺服器時間來更新 http header。

限頻規則

如果請求過於頻繁系統將自動限制請求,並在 http header 中傳回 429 too many requests 狀態碼。

  • 公共接口:如行情接口,統一限頻為 2 秒最多 20 個請求。
  • 授權接口:透過 apikey 限制授權接口的調用,參考每個接口的限頻規則限頻。

請求格式

目前只有兩種格式的請求方法:GET 和 POST

  • GET: 參數透過 queryString 在路徑中傳輸到伺服器。
  • POST: 參數依照 json 格式傳送 body 傳送到伺服器。

WEEX唯客官網:www.weex.com

你也可以在 CMCCoingecko非小號X(Twitter)YoutubeFacebookLinkedin微博 上關注我们,第一时间获取更多投資導航和福利活動!了解平台幣 WXT 最新資訊請訪問 WXT專區

在線諮詢:

WEEX唯客中文交流群:https://t.me/weex_group

WEEX唯客英文交流群:https://t.me/Weex_Global

讚! (1)
Previous 2025年 5月 7日 下午2:37
Next 2025年 5月 13日 下午1:42

相關推薦

  • WEEX即將上線Aster Inu (ASTERINU)!

    尊敬的WEEX用戶: Aster Inu(ASTERINU) 更多信息: 社區驅動的meme 代幣受到Aster 無縫跨鏈連接使命的啟發,將加密實用性與meme 文化融為一體。 官網 X賬號 交易手續費

    1小時前
    4
  • 好友紅包功能上線公告

    1. 功能說明 為了增強您與好友之間的互動樂趣,WEEX隆重推出【好友紅包】功能!您現在可以輕鬆地使用數字貨幣向好友發送祝福,無論是慶祝佳節、表達感謝還是分享喜悅,都變得前所未有的便捷和有趣。 功能亮點 雙模式選擇:支持普通紅包和隨機紅包,滿足不同場景需求。 操作簡單:幾步點擊即可創建紅包,分享至聊天或朋友圈。 即時到賬:好友領取後,資金即時存入資金賬戶,安全高效。 趣味互動:用加密貨幣玩轉傳統習俗,提升社區活躍度。 2. 發紅包 進入紅包功能頁面(https://www.weex.com/zh-CN/redpacket/sendGifts) 發送紅包-點擊創建按鈕開始創建紅包 領取紅包-輸入紅包口令(支持一鍵粘貼)領取紅包 發放操作 1.選擇紅包類型 標準紅包-每人領取金額相同且由自己設置 隨機紅包-固定紅包金額,每人領取隨機金額 2.輸入紅包個數 3.輸入金額 標準紅包-輸入單人領取金額 隨機紅包-輸入紅包總金額 4.選擇幣種(默認USDT) 請注意可用餘額顯示 個性化設置 1.輸入你的祝福語(支持自定義) 2.選擇紅包封面(支持自定義) 3.高級設置(可選) 僅受邀人-您邀請的用戶可領取紅包 僅新用戶-24小時內新註冊用戶可領取紅包 *可同時選擇-您邀請的且註冊時間在24小時內的用戶可領取紅包 最終步驟:創建紅包按鈕 輸入資金密碼 (首次會提醒設置,保護您的資金安全) 紅包創建完成 可將圖片下載或截圖發送給好友,好友使用weex APP掃描二維碼即可領取 複製口令告訴好友,好友進入weex APP進入紅包功能頁面輸入口令即可領取 *紅包有效期24小時 3.領取紅包 · Weex APP 掃描二維碼直接領取紅包 · 進入紅包功能頁面- 領取欄輸入得到的或複制的口令- 領取紅包 規則說明 發紅包 資金支持: 您可以使用現貨賬戶中的任意幣種發放紅包,發放時相應資金將被凍結。 紅包類型: 可創建隨機紅包、普通紅包,並分享二維碼/口令給好友。 領紅包 好友領取: 好友通過您的分享二維碼或輸入口令即可領取,資金將實時存入其資金賬戶。 新用戶須知: 新用戶需完成註冊後才能領取紅包。 重要規則 有效期: 每個紅包自創建起24小時內有效,逾期未領完的資金將自動退回您的賬戶。 領取限制: · 每個紅包每人僅限領取一次。 · 為保障安全,系統會檢測異常領取行為,並可能對領取金額和次數進行限制。 溫馨提示 紅包的發放、領取均無需支付任何手續費。 請勿向不熟悉的用戶發送紅包,謹防詐騙。 本規則最終解釋權歸平台所有,如有疑問,請聯繫客服。 FAQ 平台紅包功能使用指南 Q1: 什麼是平台紅包? A: 平台紅包是允許您將賬戶中的數字貨幣作為禮物發送給好友,或領取他人發放的紅包禮物的功能。好友領取後,資金將直接進入他的平台賬戶。 Q2: 發紅包時,資金被凍結了是什麼意思?會影響交易嗎? A: 凍結是為了確保紅包金額有效。發放後,相應的資金會從您的可用餘額中扣除並鎖定。這部分被凍結的資金將無法用於交易或其他操作,直到紅包被領取完畢過期退回後,才會解凍回到您的可用餘額中。 Q3: 我可以撤回已經發出去的紅包嗎? A: 非常抱歉,紅包一旦生成並分享,無法手動撤回。如果您發錯了,可以等待24小時有效期過後,未領取的資金會自動退回到您的賬戶。 Q4: 我掃描紅包二維碼後,為什麼無法領取? A:無法領取可能有以下幾種原因,請您核對: 紅包已領完: 紅包金額已被全部領取。 您已領取過: 每個紅包每人只能領一次。 不符合發放者設置: 發放者可能設置了“僅限新用戶”或“僅限其邀請的好友”等條件。 紅包已過期: 紅包超過24小時有效期。 網絡或App問題: 請檢查網絡連接,或嘗試重啟App。 Q5: 領取到的資金在哪裡查看? A: 資金在領取成功後會實時存入您的資金賬戶。您可以在【資產】-【現貨賬戶】中查看相應幣種的餘額變化。 Q6: 發放或領取紅包有什麼限制嗎? A: 為了保障資金安全,平台設置了單紅包金額上限和單用戶每日發放次數上限。具體限額請以頁面提示為準。 Q7: 紅包退回後,資金退到哪裡了?為什麼沒看到? A: 過期退回的資金,會以原幣種的形式解凍,並返還至您的【現貨賬戶】 中。請注意查看現貨賬戶的餘額,而不是資金賬戶。 Q8: 紅包鏈接或口令洩露了怎麼辦? A: 紅包發放無定向性。下次發放時,建議使用“高級設置”功能限定領取範圍(如僅限受邀好友)。本次紅包只能等待其24小時後自動過期退還。

    3小時前
    3
  • Hana Network(HANA)現已上線WEEX!

    尊敬的WEEX用戶: 充值:2025年9月29日20:00(UTC 8)正式開放 交易:2025年9月26日20:00(UTC 8)正式開放 提現:即將開放 立即交易:HANA/USDT Hana Network(HANA) 更多信息: Hana Network 由一支日本團隊於2022 年12 月推出,旨在構建新的界面,引導用戶進入加密貨幣領域,包括直播和交易平台。該項目的願景是為亞洲、非洲和其他地區的散戶用戶提供超休閒加密貨幣的入口,並服務於大型交易者。 2023 年,Hana Network 入選幣安孵化器孵化計劃,並已籌集總計900 萬美元的資金。該團隊正在分階段推出應用,逐步推出Hanafuda(一款休閒卡牌遊戲)、Capsule Shot(NFT)和Dipsy(直播)。 官網 X賬號 交易手續費

    5小時前
    9
  • WEEX合約將上線YURU U本位合約- 9/27 10:00(UTC 8)

    很高興的宣布,WEEX合約將於2025年9月27日10:00(UTC 8)上線YURU U本位合約。 合約以美元穩定幣為計價單位,支持多種槓桿,以滿足不同投資者的需求。您可以通過網頁、APP進行交易,歡迎您體驗! 新增加的幣對包括: YURU/USDT 其他信息: WEEX 手續費 風險提示: 數字資產合約交易是高風險的創新產品,需要專業知識。請您理性判斷,審慎做出交易決策。 WEEX唯客團隊 註冊WEEX唯客 >>> 在Twitter上關注WEEX >>> 加入WEEX唯客社群 >>> 更多交易機會 >>> 【收錄平台】: CoinMarketCap | CryptoWisser.com | Coingecko | Coincarp – 感謝您對WEEX 的支持! – 聯絡我們: X | YouTube | Telegram | Medium | Facebook | LinkedIn | Blog 立即註冊WEEX賬戶: https://www.weex.com/register CoinMarketCap | Cryptowisser.com | Coingecko | Coincarp

    6小時前
    11
  • Mira Network(MIRA)現已上線WEEX!

    尊敬的WEEX用戶: 充值:即將開放 交易:2025年9月26日21:00(UTC 8)正式開放 提現:即將開放 立即交易:MIRA/USDT Mira Network(MIRA) 更多信息: Mira 是一個去中心化的驗證網絡,旨在確保AI 輸出的可信度。 Mira 將AI 生成的內容轉化為可驗證的聲明,並在多個AI 模型之間使用區塊鏈共識,從而消除了人工驗證的必要性。這一突破使AI 能夠在醫療保健、金融和法律服務等高風險領域實現自主運行。 Mira 擁有超過100 萬用戶,涵蓋Klok 和Learnrite 等生態系統應用,正在為AI 革命構建至關重要的信任層。 官網 X賬號 交易手續費

    8小時前
    10
  • WEEX WE-Launch – CLT(Chicago Coin) 上線及10,000 USDT空投!

    宣布啟動WE-Launch新一輪項目:CLT(Chicago Coin)。 📅 活動時間:2025-09-26 16:00 (UTC 8) — 2025-09-29 16:00 (UTC 8) 🚀 上線時間: 充值時間:2025-09-28 17:00 (UTC 8) 交易時間:2025-09-29 17:00 (UTC 8) 提現時間:2025-09-30 17:00 (UTC 8) 活動期間,通過參與WXT,您將有機會免費分享 10,000枚USDT代幣 ! 通過WE-Launch提交WXT以賺取USDT。 WXT 投入池 總獎勵:10,000 USDT 最低投入:1,000 WXT 最高投入:500,000 WXT WXT 投入期結束後,系統將計算每個參與用戶的空投獎勵。 實際投入必須滿足每個級別的最低要求,有效投入是根據相應級別的投入倍數計算的。 您的有效投入百分比越大,您在獎勵池中的份額就越大。 預計獎勵= 當前用戶的有效投入/ 所有用戶的總有效投入* 總獎勵池; 用戶的有效投入= 用戶的實際投入* 相應級別的投入倍數; *投入的WXT 可同時參與多個項目,無需鎖倉,也沒有任何質押要求。 【CLT(Chicago Coin) 簡介】 芝加哥幣(Chicago Coin) 推出CLT 代幣,這是一款基於區塊鏈的解決方案,旨在改變電子競技經濟。 CLT 構建於以太坊網絡,旨在構建一個公平、透明且去中心化的生態系統,連接玩家、開發者和粉絲。 我們的願景是重新定義電子競技的數字所有權,賦予玩家擁有資產的自主權並將其貨幣化,為開發者提供更公平的收入模式,並在社區驅動的經濟體系中創造沉浸式的粉絲體驗。 芝加哥幣致力於持續創新、建立戰略合作夥伴關係和實現可持續發展,確保所有利益相關者的長期價值。 CLT 的推出,不僅僅是為了推出一款代幣,更是為了通過區塊鏈的透明度和包容性來塑造電子競技的未來。 官網 X賬號 條款與條件: 參加WE-Launch活動無需支付任何費用。 活動期間,您賬戶中的WXT無任何限制,可隨時進行交易或提現。 空投快照​​不包含任何被鎖定的WXT。 做市商和項目團隊賬戶不具備參與本次活動的資格。 嚴禁使用惡意手段,包括洗售交易、操縱交易量、創建多個賬戶以謀取利益或偽造KYC信息,以滿足活動資格要求。 WEEX保留對參與者進行資格審查的權利,有權取消參與者的活動資格、暫停發放獎勵,並追回已發放至賬戶的任何活動獎勵。 WEEX 保留本活動最終解釋權。平台有權根據市場情況調整或終止活動,且無需提前通知用戶。如有任何疑問,請聯繫我們的在線客服。

    10小時前
    11
內容目錄