You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Coinex API BASH下单curl无法解析主机与签名错误问题求助

问题原因排查

第一个报错(无法解析https主机)原因

  • curl命令参数错误:-X -POST多了多余的横杠,正确写法是-X POST
  • URL被额外包裹了单引号:"'$get_url'"会把单引号也作为URL的一部分,导致解析失败,直接写$get_url即可
  • 变量名不一致:POST参数里引用的$market未定义,你实际定义的交易对变量是$marketpair,导致提交的交易对参数为空

第二个报错(Signature error签名错误)原因

  • md5sum的输出包含多余后缀:md5sum命令默认输出结果后会跟随空格和-(代表读取自标准输入),你直接转大写后把多余的 -也带入了authorization头,从日志里能看到头的值末尾多了 -
  • jq获取tonce时未去除引号:jq .data.date默认会给数字结果包裹双引号,导致签名时使用的tonce和提交的tonce值不一致
  • 签名参数和POST提交的参数不一致:签名用的交易对是$marketpair,POST提交的是未定义的$market,参数不匹配导致签名校验失败
  • authorization头多了多余单引号:你头的写法里给值加了单引号,导致提交的签名值包含多余的单引号字符
可行解决方案

下面是修正后的完整脚本:

#!/bin/bash
# Coinex市价单提交脚本

# 配置信息
access_id="xxxx" 
secret_key="xxxx"  
request_url="https://api.coinex.com/v1/order/market" 
amount="100.0"  
marketpair="DOGEUSDT"  
market_type="sell" 

# 获取毫秒级时间戳,加-r去除jq返回的引号
tonce=$(curl -s https://api.coinex.com/v1/market/ticker/all | jq -r .data.date)

# 生成签名,只取md5sum的第一列去除后缀,再转大写
sign_str="access_id=${access_id}&amount=${amount}&market=${marketpair}&tonce=${tonce}&type=${market_type}&secret_key=${secret_key}"
authorization=$(echo -n "${sign_str}" | md5sum | awk '{print $1}' | tr '[:lower:]' '[:upper:]')

# 提交下单请求
curl -v \
  -H "authorization: ${authorization}" \
  -H "Content-Type: application/json" \
  -d '{"access_id":"'"${access_id}"'","amount":"'"${amount}"'","market":"'"${marketpair}"'","tonce":'"${tonce}"',"type":"'"${market_type}"'"}' \
  -X POST \
  "${request_url}"
额外注意事项
  • 确保你的API密钥开通了交易权限
  • 本地时间和服务器时间差不要超过60秒,避免tonce校验失败
  • 市价卖单的amount是卖出币种的数量,买单的amount是计价币的数量,不要填错

内容的提问来源于stack exchange,提问作者mehdi shokati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:15:03