Захотел написать бота для трейдинга на бирже kucoin, с публичными api все ок, как только дошел до приватных столкнулся с проблемой генерации ключа для подписи запроса.
Signature Calculation
Example for Creating an buy order of KCS-BTC :
String host = "https://api.kucoin.com";
String endpoint = "/v1/KCS-BTC/order"; // API endpoint
String secret; //The secret assigned when the API created
/**
* POST parameters:
* type: BUY
* amount: 10
* price: 1.1
* Arrange the parameters in ascending alphabetical order (lower cases first), then combine them with & (don't urlencode them, don't add ?, don't add extra &), e.g. amount=10&price=1.1&type=BUY
* 将查询参数按照字母升序(小字母在前)排列后用&进行连接(请不要进行urlencode操作,开头不要带?,首位不要有额外的&符号)得到的queryString如: amount=10&price=1.1&type=BUY
*/
String queryString;
//splice string for signing
String strForSign = endpoint + "/" + nonce +"/" + queryString;
//Make a base64 encoding of the completed string
String signatureStr = Base64.getEncoder().encodeToString(strForSign.getBytes("UTF-8"));
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKeySpec = new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256");
sha256_HMAC.init(secretKeySpec);
//KC-API-SIGNATURE in header
String signatureResult = Hex.encodeHexString(sha256_HMAC.doFinal(signatureStr.getBytes("UTF-8")));
Вот этот кусок кода нужно повторить, пробовал уже и в C# и в JS перевернуть, но все никак не получается. Что то посоветуете?
Signature Calculation
Example for Creating an buy order of KCS-BTC :
String host = "https://api.kucoin.com";
String endpoint = "/v1/KCS-BTC/order"; // API endpoint
String secret; //The secret assigned when the API created
/**
* POST parameters:
* type: BUY
* amount: 10
* price: 1.1
* Arrange the parameters in ascending alphabetical order (lower cases first), then combine them with & (don't urlencode them, don't add ?, don't add extra &), e.g. amount=10&price=1.1&type=BUY
* 将查询参数按照字母升序(小字母在前)排列后用&进行连接(请不要进行urlencode操作,开头不要带?,首位不要有额外的&符号)得到的queryString如: amount=10&price=1.1&type=BUY
*/
String queryString;
//splice string for signing
String strForSign = endpoint + "/" + nonce +"/" + queryString;
//Make a base64 encoding of the completed string
String signatureStr = Base64.getEncoder().encodeToString(strForSign.getBytes("UTF-8"));
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKeySpec = new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256");
sha256_HMAC.init(secretKeySpec);
//KC-API-SIGNATURE in header
String signatureResult = Hex.encodeHexString(sha256_HMAC.doFinal(signatureStr.getBytes("UTF-8")));
Вот этот кусок кода нужно повторить, пробовал уже и в C# и в JS перевернуть, но все никак не получается. Что то посоветуете?