0

在尝试与 GDAX API 交互时,我在 vba 中遇到了问题。

我收到此错误:{"message":"Requires product_id"}

我无法在 WinHttp.WinHttpRequest.5.1 的订单“POST”中传递我的 product_id 似乎没有任何效果:

我尝试在 URL 之后添加 ?product_id=BTC-EUR 作为 Methodoptions(这适用于 GET 语句)我尝试在发送后添加“product_id=BTC-EUR” 我尝试使用 JsonString = "{""size"": ""0.01 "",""price"": ""0.100"",""side"": ""buy"",""product_id"": ""BTC-USD""}" 这作为 postdata

有谁知道,如何传递这些论点?

这是我正在使用的代码,它适用于所有其他不传递参数的经过身份验证的语句。

TradeApiSite = "https://api-public.sandbox.gdax.com"

SignMsg = NonceUnique & UCase(HTTPMethod) & "/" & Method & MethodOptions
APIsign = Base64Encode(ComputeHash_C("SHA256", SignMsg, Base64Decode(secretkey), "RAW"))

' Instantiate a WinHttpRequest object and open it
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
objHTTP.Open UCase(HTTPMethod), TradeApiSite & "/" & Method & MethodOptions, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.setRequestHeader "CB-ACCESS-KEY", apikey
objHTTP.setRequestHeader "CB-ACCESS-SIGN", APIsign
objHTTP.setRequestHeader "CB-ACCESS-TIMESTAMP", NonceUnique
objHTTP.setRequestHeader "CB-ACCESS-PASSPHRASE", passphrase

objHTTP.Send '(postdata)
4

1 回答 1

0

在深入了解 danpaquin/gdax-python 如何在此处进行身份验证后弄清楚了https://github.com/danpaquin/gdax-python/blob/master/gdax/gdax_auth.py

  1. 您想像您描述的那样将 JSON 字符串作为发布数据发送
  2. Content-Type 标头应设置为 application/json
  3. 发布数据需要附加到预哈希(在您的情况下为 SignMsg)

第 2 步很重要,因为没有它,GDAX 似乎不会读取您的帖子数据 - 所以您会收到 Requires product_id 错误。如果您在没有第 3 步的情况下执行第 2 步,您将收到无效签名错误

于 2018-03-24T23:56:09.943 回答