# 生成时间戳和时间窗
timestamp = int(time() * 1e3)
window = "5000"
# 定义调用指令
instruction = "orderExecute"
sign_str = f"instruction={instruction}"
# 构建订单参数
order_params = {
"symbol": "SOL_USDC", # 必填:交易对
"side": "Bid", # 必填:买单 "Bid",卖单 "Ask"
"orderType": "Limit", # 必填:市价 "Market" 或限价 "Limit"
"price": "170.50", # 限价单所需价格
"quantity": "1.0", # 下单数量
"timeInForce": "GTC", # 有效类型:"GTC"、"IOC"、"FOK"
"clientId": 123456, # 自定义订单 ID(可选)
"selfTradePrevention": "RejectTaker" # 自成交保护(可选)
}
# 格式化参数为查询字符串
sorted_params_list = []
for key, value in sorted(order_params.items()):
if isinstance(value, bool):
value = str(value).lower()
sorted_params_list.append(f"{key}={value}")
sorted_params = "&".join(sorted_params_list)
# 拼接签名字符串
if sorted_params:
sign_str += "&" + sorted_params
sign_str += f"×tamp={timestamp}&window={window}"
print(f"签名字符串: {sign_str}")