我试图通过在BASH环境中应用curl
在www.coinex.com加密交易所下市场订单。我使用以下官方指南:
API调用指令
下市场订单
我的代码读取输入(amount
,price
,market
,type
,…),通过MD5算法生成登录数据,并通过curl
发送POST。
code:
#!/bin/bash
#A code to put a market order in the www.coinex.com exchange pairs
#My Access ID in www.coinex.com
access_id="XXXX"
#My secrect Key in www.coinex.com
secret_key="XXXX"
#Request Url
get_url="https://api.coinex.com/v1/order/market"
#Any Amount
amount="1.0"
#Any pair in the Market
marketpair="DOGEUSDT"
#buy or sell
market_type="sell"
#the market price
price="0.041"
#Get servertime, Tonce is a timestamp with a positive Interger that represents the number of milliseconds from Unix epoch to the current time. Error between tonce and server time can not exceed plus or minus 60s
tonce=`curl -X GET https://api.coinex.com/v1/market/ticker/all | jq .data.date`
#authorization code using 32-bit MD5 Algorithm Signature
authorization=`echo -n 'access_id='$access_id'&amount='$amount'&market='$marketpair'&price='$price'&tonce='$tonce'&type='$market_type'&secret_key='$secret_key''|md5sum`
#Convert authorization to UPPERCASE
echo ${authorization^^}
#Place market order
curl -v -H "authorization:'$authorization'" -H "Content-Type: application/json" -X -POST -d '{"access_id":"'$access_id'", "amount": "'$amount'","market":"'$market'","price": "'$price'", "tonce": "'$tonce'", "type": "'$market_type'"}' $get_url
误差:
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>
* Connection #0 to host 127.0.0.1 left intact
另外,我使用VPN上网。
为什么要在请求中加上" price " ?配售市场不需要价格,标记会以可能的第一价格买入
还有,如果我没听错的话,你应该用小写来表示你的对字符串
我用下面的包成功解决了问题(我在Google colab中运行):
https://pythonrepo.com/repo/imanmousaei-coinexpy