Token & Secret-key apply and change
- Please go to "Profile - Open Interface"
Interface permission verification
- To request an interface, the header must have Nonce, token, and Signature parameters.
- Example
$header[] = 'Nonce: 1534927978_ab43c'; $header[] = 'Token: 57ba172a6be125cca2f449826f9980ca'; $header[] = 'Signature: v490hupi0s0bckcp6ivb69p921'; curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
- Token:
- Please go to "Profile - Open Interface" for the token
- Nonce:
- Random number, each request randomly generates characters.
Rules: timestamp _5-bit random letters or numbers. For example: 1534927978_ab43c
Note: Time error should not exceed 60 seconds, and the same random number can only be used once.
- Random number, each request randomly generates characters.
- Signature:
- Signature is calculated using secret_key, POST, $GET, and the server verifies signature to determine if request is from the user.
Signature Python Sample Code:
def sign(Nonce,data=dict()):
tmp = list()
tmp.append(TOKEN)
tmp.append(SECRET)
tmp.append(Nonce)
for d,x in data.items():
tmp.append(str(d) + "=" + str(x))
return hashlib.sha1(''.join(sorted(tmp)).encode('utf-8')).hexdigest()
Signature PHP Sample Code:
private function signature($nonce) { $token = TOKEN; $secret_key = SECRET-KEY; $tmpArr = array($api_key,$secret_key,$nonce); foreach($_GET as $k=>$v){ $tmpArr[] = $k."=".$v; } foreach($_POST as $k=>$v){ $tmpArr[] = $k."=".$v; } sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $signature = sha1( $tmpStr ); return $signature; }
Signature Java Sample Code:
List paramArr = new ArrayList<>(); String token = "57ba172a6be125c"; String nonce = "1534927978_ab43c"; String secretKey = "ca2f449826f9980ca"; paramArr.add(token); paramArr.add(secretKey); paramArr.add(nonce); //Get all requested parameters Enumeration enu=request.getParameterNames(); while(enu.hasMoreElements()){ String paramKv = ""; String paramName=(String)enu.nextElement(); String paramVal=request.getParameter(paramName); paramKv += paramName; paramKv += "="; paramKv += paramVal; paramArr.add(paramKv); } Collections.sort(paramArr, new Comparator() { @Override public int compare(String o1, String o2) { String str1=(String) o1; String str2=(String) o2; if (str1.compareToIgnoreCase(str2)<0){ return -1; } return 1; } }); //Reconnect strings String paramStr = String.join("", paramArr); String signature =DigestUtils.sha1Hex(paramStr);
Signature Java Sample Code:
var verb = 'POST';
var path = '/openApi/entrust/add';
var paraArrays = [Nonce, Token, secretKey, `amount=${amount}`, `symbol=${symbol}`, `price=${price}`, `type=${type}`];
paraArrays.sort();
var params = "";
for(var i = 0; i < paraArrays.length; i++) {
params += paraArrays[i] + ""
}
var postMan = querystring.stringify({
symbol: symbol,
price: price,
amount: amount,
type: type
})
var signature = crypto.createHash('sha1').update(params).digest('hex');
var headers = {
'content-type': 'application/json',
'Accept': 'application/json',
'Nonce': Nonce,
'Token': Token,
'Signature': signature
};
const requestOptions = {
headers: headers,
url: 'https://openapi.aofex.com' + path + "?" + postMan,
method: verb,
body: ""
};
return new Promise(function(resolve, reject) {
request(requestOptions, function(error, response, body) {
if(error) {
return reject(error);
}
resolve(body);
});
});
Example:
#假设: $token = "57ba172a6be125c"; $secret_key = "ca2f449826f9980ca"; $nonce = "1534927978_ab43c";
Request interface address
- /openApi/entrust/currentList
Parameters
- symbol = "BTC-USDT"; type = "1"
String
- 1534927978_ab43c57ba172a6be125cca2f449826f9980casymbol=BTC-USDTtype=1
After SHA1 is calculated:
- $signature 为 731faa3d170bb746a767cea58ae563830594e1fe
Comments
0 comments
Article is closed for comments.