Xbase++
Xbase++
Bitfinex v2 REST Submit Order
See more Bitfinex v2 REST Examples
Submit an order.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oCrypt
LOCAL cApiPath
LOCAL cApiKey
LOCAL cApiSecret
LOCAL oDt
LOCAL oSbNonce
LOCAL cNonce
LOCAL oJson
LOCAL cBody
LOCAL oSbSignature
LOCAL cSig
LOCAL oResp
nSuccess := 0
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
oCrypt := CreateObject("Chilkat.Crypt2")
cApiPath := "v2/auth/w/order/submit"
cApiKey := "MY_API_KEY"
cApiSecret := "MY_API_SECRET"
oDt := CreateObject("Chilkat.CkDateTime")
oDt:SetFromCurrentSystemTime()
oSbNonce := CreateObject("Chilkat.StringBuilder")
oSbNonce:Append(oDt:GetAsUnixTimeStr(0))
oSbNonce:Append("000")
cNonce := oSbNonce:GetAsString()
oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateString("type", "LIMIT")
oJson:UpdateString("symbol", "tBTCUSD")
oJson:UpdateString("price", "15")
oJson:UpdateString("amount", "0.001")
oJson:UpdateInt("flags", 0)
cBody := oJson:Emit()
oSbSignature := CreateObject("Chilkat.StringBuilder")
oSbSignature:Append("/api/")
oSbSignature:Append(cApiPath)
oSbSignature:Append(cNonce)
oSbSignature:Append(cBody)
oCrypt:EncodingMode := "hex_lower"
oCrypt:HashAlgorithm := "sha384"
oCrypt:MacAlgorithm := "hmac"
oCrypt:SetMacKeyString(cApiSecret)
cSig := oCrypt:MacStringENC(oSbSignature:GetAsString())
oHttp:SetRequestHeader("bfx-apikey", cApiKey)
oHttp:SetRequestHeader("bfx-signature", cSig)
oHttp:SetRequestHeader("bfx-nonce", cNonce)
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpStr("POST", "https://api.bitfinex.com/v2/auth/w/order/submit", cBody, "utf-8", "application/json", oResp)
IF (nSuccess == 0)
? oHttp:LastErrorText
oHttp:destroy()
oCrypt:destroy()
oDt:destroy()
oSbNonce:destroy()
oJson:destroy()
oSbSignature:destroy()
oResp:destroy()
RETURN
ENDIF
? "Response body:"
? oResp:BodyStr
oHttp:destroy()
oCrypt:destroy()
oDt:destroy()
oSbNonce:destroy()
oJson:destroy()
oSbSignature:destroy()
oResp:destroy()