我正在尝试使用此API
WebView
首先,我想将基本方法info
称为postman
我在标题中添加到字段的原因:
API-Key
- >我的api密钥API-Hash
- >通过HMAC SHA512
签名在下面生成的哈希值。我如何生成API-Hash
?
我用Java
简单的方法编写了如下:
public String encodeDataViaHMAC(String msg, String keyString, String algo) {
String digest = null;
try {
SecretKeySpec key = new SecretKeySpec((keyString).getBytes("UTF-8"), algo);
Mac mac = Mac.getInstance(algo);
mac.init(key);
byte[] bytes = mac.doFinal(msg.getBytes("ASCII"));
StringBuffer hash = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(0xFF & bytes[i]);
if (hex.length() == 1) {
hash.append('0');
}
hash.append(hex);
}
digest = hash.toString();
} catch (UnsupportedEncodingException e) {
} catch (InvalidKeyException e) {
} catch (NoSuchAlgorithmException e) {
}
return digest;
}
然后我传给它参数:
Map<String, Object> m = new LinkedHashMap<>();
m.put("method", "info");
m.put("tonce", System.currentTimeMillis());
HmacSHA512
之后我仍然得到postman
错误:
{"error":502,"errorMsg":"Invalid message hash","time":1514023708}
有没有人可以帮助我做错了什么,可以帮我修复它?