这个功能的实现再一次说明,功夫不负有心人。同时,也让我对HTTP方式的POST,GET,DELETE;对指定内容签名;HTTP数据域的组织;HTTP标准头的使用等等有了更近一步的了解。
先上源码:
难点主要在于签名,http头部内容的组织。我看了官方接口,ccxt在github上关于PHP的源码,也没有找到合适的方法来解决这两个问题。这个时候就犯难了,怎么办?
后来,还是在官方API文档中找到了蛛丝马迹。
身份验证可通过发送以下 HTTP 标头完成:
API-expires :这个UNIX时间戳以后请求不再有效。 这是为了防止重放攻击。
UNIX时间戳以秒为单位。 例如, 2018-02-08T04:30:37Z 为 1518064237。
API-键 :您的API公钥。 当你通过 API 创建一个 API 密钥时,一个 id 参数会被返回。
api-signature: 你的当前请求的签名。 它的计算方法为 hex(HMAC_SHA256(apiSecret, verb + path + nonce + data))。 请参阅下面的计算示例。
‘data’ 参数
HMAC 中的 data 部分应该完全与你发送到服务器的原始数据一致。 你可以发送 JSON 或形式编码,只需确保你在 HMAC 中使用同样的字符串。通常你可以用自己喜欢的编程语言创建你的请求,然后在 HMAC 中使用与请求中一样的字符串。是的,有的时候,阅读理解能力非常的关键。像这种情况下就体现出来了。我是反复读了好多次,才真正明白里面的涵义;再加上反复调试;最后终于成功。现在看来,这段代码看似简单,实则不易呀。
从现在起,养成一个好习惯——把难得的好东西分享出来。
作者:崔大辰儿
链接:https://www.jianshu.com/p/a8295b57d8a4



