Swift
Swift
ETrade Cancel Order
See more ETrade Examples
The cancel order API is used to cancel an existing order.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
http.oAuth1 = true
http.oAuthVerifier = ""
http.oAuthConsumerKey = "ETRADE_CONSUMER_KEY"
http.oAuthConsumerSecret = "ETRADE_CONSUMER_SECRET"
// Load the access token previously obtained via the OAuth1 Authorization
let jsonToken = CkoJsonObject()!
success = jsonToken.loadFile(path: "qa_data/tokens/etrade.json")
if success != true {
print("Failed to load OAuth1 token")
return
}
http.oAuthToken = jsonToken.string(of: "oauth_token")
http.oAuthTokenSecret = jsonToken.string(of: "oauth_token_secret")
var sandboxUrl: String? = "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel"
var liveUrl: String? = "https://api.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel"
http.setUrlVar(name: "accountIdKey", value: "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>
let xml = CkoXml()!
xml.tag = "CancelOrderRequest"
xml.updateChildContent(tagPath: "orderId", value: "11")
xml.emitCompact = true
var httpRequestBody: String? = xml.getXml()
let resp = CkoHttpResponse()!
success = http.httpStr(verb: "PUT", url: sandboxUrl, bodyStr: httpRequestBody, charset: "utf-8", contentType: "application/xml", response: resp)
if success == false {
print("\(http.lastErrorText!)")
return
}
// Make sure a successful response was received.
if resp.statusCode.intValue > 200 {
print("\(resp.statusLine!)")
print("\(resp.header!)")
print("\(resp.bodyStr!)")
return
}
// 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>
xml.load(xmlData: resp.bodyStr)
print("\(xml.getXml()!)")
var accountId: Int
var orderId: Int
var cancelTime: String?
var code: Int
var description: String?
var v_type: String?
accountId = xml.getChildIntValue(tagPath: "accountId").intValue
orderId = xml.getChildIntValue(tagPath: "orderId").intValue
cancelTime = xml.getChildContent(tagPath: "cancelTime")
code = xml.getChildIntValue(tagPath: "Messages|Message|code").intValue
description = xml.getChildContent(tagPath: "Messages|Message|description")
v_type = xml.getChildContent(tagPath: "Messages|Message|type")
print("Success.")
}