Sample code for 30+ languages & platforms
PowerBuilder

Bitfinex v2 REST Submit Order

See more Bitfinex v2 REST Examples

Submit an order.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Http
oleobject loo_Crypt
string ls_ApiPath
string ls_ApiKey
string ls_ApiSecret
oleobject loo_Dt
oleobject loo_SbNonce
string ls_Nonce
oleobject loo_Json
string ls_Body
oleobject loo_SbSignature
string ls_Sig
oleobject loo_Resp

li_Success = 0

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
    destroy loo_Http
    MessageBox("Error","Connecting to COM object failed")
    return
end if

loo_Crypt = create oleobject
li_rc = loo_Crypt.ConnectToNewObject("Chilkat.Crypt2")

ls_ApiPath = "v2/auth/w/order/submit"
ls_ApiKey = "MY_API_KEY"
ls_ApiSecret = "MY_API_SECRET"

loo_Dt = create oleobject
li_rc = loo_Dt.ConnectToNewObject("Chilkat.CkDateTime")

loo_Dt.SetFromCurrentSystemTime()

loo_SbNonce = create oleobject
li_rc = loo_SbNonce.ConnectToNewObject("Chilkat.StringBuilder")

loo_SbNonce.Append(loo_Dt.GetAsUnixTimeStr(0))
loo_SbNonce.Append("000")
ls_Nonce = loo_SbNonce.GetAsString()

loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")

loo_Json.UpdateString("type","LIMIT")
loo_Json.UpdateString("symbol","tBTCUSD")
loo_Json.UpdateString("price","15")
loo_Json.UpdateString("amount","0.001")
loo_Json.UpdateInt("flags",0)
ls_Body = loo_Json.Emit()

loo_SbSignature = create oleobject
li_rc = loo_SbSignature.ConnectToNewObject("Chilkat.StringBuilder")

loo_SbSignature.Append("/api/")
loo_SbSignature.Append(ls_ApiPath)
loo_SbSignature.Append(ls_Nonce)
loo_SbSignature.Append(ls_Body)

loo_Crypt.EncodingMode = "hex_lower"
loo_Crypt.HashAlgorithm = "sha384"
loo_Crypt.MacAlgorithm = "hmac"
loo_Crypt.SetMacKeyString(ls_ApiSecret)

ls_Sig = loo_Crypt.MacStringENC(loo_SbSignature.GetAsString())

loo_Http.SetRequestHeader("bfx-apikey",ls_ApiKey)
loo_Http.SetRequestHeader("bfx-signature",ls_Sig)
loo_Http.SetRequestHeader("bfx-nonce",ls_Nonce)

loo_Resp = create oleobject
li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")

li_Success = loo_Http.HttpStr("POST","https://api.bitfinex.com/v2/auth/w/order/submit",ls_Body,"utf-8","application/json",loo_Resp)
if li_Success = 0 then
    Write-Debug loo_Http.LastErrorText
    destroy loo_Http
    destroy loo_Crypt
    destroy loo_Dt
    destroy loo_SbNonce
    destroy loo_Json
    destroy loo_SbSignature
    destroy loo_Resp
    return
end if

Write-Debug "Response body:"
Write-Debug loo_Resp.BodyStr


destroy loo_Http
destroy loo_Crypt
destroy loo_Dt
destroy loo_SbNonce
destroy loo_Json
destroy loo_SbSignature
destroy loo_Resp