Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) ETrade Cancel OrderThe cancel order API is used to cancel an existing order. For more information, see https://apisb.etrade.com/docs/api/order/api-order-v1.html#/definition/cancelOrder
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkXml.pb" Procedure ChilkatExample() ; This requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttp::setCkOAuth1(http, 1) CkHttp::setCkOAuthVerifier(http, "") CkHttp::setCkOAuthConsumerKey(http, "ETRADE_CONSUMER_KEY") CkHttp::setCkOAuthConsumerSecret(http, "ETRADE_CONSUMER_SECRET") ; Load the access token previously obtained via the OAuth1 Authorization jsonToken.i = CkJsonObject::ckCreate() If jsonToken.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/etrade.json") If success <> 1 Debug "Failed to load OAuth1 token" CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf CkHttp::setCkOAuthToken(http, CkJsonObject::ckStringOf(jsonToken,"oauth_token")) CkHttp::setCkOAuthTokenSecret(http, CkJsonObject::ckStringOf(jsonToken,"oauth_token_secret")) sandboxUrl.s = "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel" liveUrl.s = "https://api.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel" CkHttp::ckSetUrlVar(http,"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> xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::setCkTag(xml, "CancelOrderRequest") CkXml::ckUpdateChildContent(xml,"orderId","11") CkXml::setCkEmitCompact(xml, 1) resp.i = CkHttp::ckPText(http,"PUT",sandboxUrl,CkXml::ckGetXml(xml),"utf-8","application/xml",0,0) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkXml::ckDispose(xml) ProcedureReturn EndIf ; Make sure a successful response was received. If CkHttpResponse::ckStatusCode(resp) > 200 Debug CkHttpResponse::ckStatusLine(resp) Debug CkHttpResponse::ckHeader(resp) Debug CkHttpResponse::ckBodyStr(resp) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkXml::ckDispose(xml) ProcedureReturn 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> CkXml::ckLoadXml(xml,CkHttpResponse::ckBodyStr(resp)) Debug CkXml::ckGetXml(xml) accountId.i orderId.i cancelTime.s code.i description.s v_type.s accountId = CkXml::ckGetChildIntValue(xml,"accountId") orderId = CkXml::ckGetChildIntValue(xml,"orderId") cancelTime = CkXml::ckGetChildContent(xml,"cancelTime") code = CkXml::ckGetChildIntValue(xml,"Messages|Message|code") description = CkXml::ckGetChildContent(xml,"Messages|Message|description") v_type = CkXml::ckGetChildContent(xml,"Messages|Message|type") Debug "Success." CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.