Xbase++
Xbase++
ETrade Cancel Order
See more ETrade Examples
The cancel order API is used to cancel an existing order.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonToken
LOCAL cSandboxUrl
LOCAL cLiveUrl
LOCAL oXml
LOCAL cHttpRequestBody
LOCAL oResp
LOCAL nAccountId
LOCAL nOrderId
LOCAL cCancelTime
LOCAL nCode
LOCAL cDescription
LOCAL cV_type
nSuccess := 0
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
oHttp:OAuth1 := 1
oHttp:OAuthVerifier := ""
oHttp:OAuthConsumerKey := "ETRADE_CONSUMER_KEY"
oHttp:OAuthConsumerSecret := "ETRADE_CONSUMER_SECRET"
// Load the access token previously obtained via the OAuth1 Authorization
oJsonToken := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonToken:LoadFile("qa_data/tokens/etrade.json")
IF (nSuccess != 1)
? "Failed to load OAuth1 token"
oHttp:destroy()
oJsonToken:destroy()
RETURN
ENDIF
oHttp:OAuthToken := oJsonToken:StringOf("oauth_token")
oHttp:OAuthTokenSecret := oJsonToken:StringOf("oauth_token_secret")
cSandboxUrl := "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel"
cLiveUrl := "https://api.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel"
oHttp:SetUrlVar("accountIdKey", "6_Dpy0rmuQ9cu9IbTfvF2A")
// Send a PUT with the following XML body
// Use this online tool to generate the code from sample XML:
// Generate Code to Create XML
// <CancelOrderRequest>
// <orderId>11</orderId>
// </CancelOrderRequest>
oXml := CreateObject("Chilkat.Xml")
oXml:Tag := "CancelOrderRequest"
oXml:UpdateChildContent("orderId", "11")
oXml:EmitCompact := 1
cHttpRequestBody := oXml:GetXml()
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpStr("PUT", cSandboxUrl, cHttpRequestBody, "utf-8", "application/xml", oResp)
IF (nSuccess == 0)
? oHttp:LastErrorText
oHttp:destroy()
oJsonToken:destroy()
oXml:destroy()
oResp:destroy()
RETURN
ENDIF
// Make sure a successful response was received.
IF (oResp:StatusCode > 200)
? oResp:StatusLine
? oResp:Header
? oResp:BodyStr
oHttp:destroy()
oJsonToken:destroy()
oXml:destroy()
oResp:destroy()
RETURN
ENDIF
// Sample XML response:
// Use this online tool to generate parsing code from sample XML:
// Generate Parsing Code from XML
// <CancelOrderResponse>
// <accountId>63438617</accountId>
// <orderId>11</orderId>
// <cancelTime>1529563499081</cancelTime>
// <Messages>
// <Message>
// <code>5011</code>
// <description>200|Your request to cancel your order is being processed.</description>
// <type>WARNING</type>
// </Message>
// </Messages>
// </CancelOrderResponse>
oXml:LoadXml(oResp:BodyStr)
? oXml:GetXml()
nAccountId := oXml:GetChildIntValue("accountId")
nOrderId := oXml:GetChildIntValue("orderId")
cCancelTime := oXml:GetChildContent("cancelTime")
nCode := oXml:GetChildIntValue("Messages|Message|code")
cDescription := oXml:GetChildContent("Messages|Message|description")
cV_type := oXml:GetChildContent("Messages|Message|type")
? "Success."
oHttp:destroy()
oJsonToken:destroy()
oXml:destroy()
oResp:destroy()