签名的例子

假设您有以下的应用密钥和密文:

{
  "apiKey": "test_api_key",
  "apiSecret": "test_api_secret"
}

并且您想要发送以下的请求参数:

{
  "foo": "bar",
  "egg": "spam"
}

1.添加额外的参数:

{
  "foo": "bar",
  "egg": "spam",
  "timestamp": 1514736000000,
  "apiKey": "test_api_key"
}

2.把参数按照键名排序:

['apiKey', 'egg', 'foo', 'timestamp']

3.对于每个参数,拼接键名和键值:

['apiKeytest_api_key', 'eggspam', 'foobar', 'timestamp1514736000000']

4.拼接所有的到的字符串:

apiKeytest_api_keyeggspamfoobartimestamp1514736000000

5.追加应用密文:

apiKeytest_api_keyeggspamfoobartimestamp1514736000000test_api_secret

6.计算 sha256 哈希的十六进制表示:

bf67314ff91f39952a267fb4bf3f9ed2b53f813cdcfba610f9d8643038a17326

7.将签名加回请求参数:

{
  "foo": "bar",
  "egg": "spam",
  "timestamp": 1514736000000,
  "apiKey": "test_api_key",
  "signature": "bf67314ff91f39952a267fb4bf3f9ed2b53f813cdcfba610f9d8643038a17326"
}

这些就是你最终需要发送的参数。