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
(Delphi DLL) 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
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpResponse, Xml, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; jsonToken: HCkJsonObject; success: Boolean; sandboxUrl: PWideChar; liveUrl: PWideChar; xml: HCkXml; resp: HCkHttpResponse; accountId: Integer; orderId: Integer; cancelTime: PWideChar; code: Integer; description: PWideChar; v_type: PWideChar; begin // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := CkHttp_Create(); CkHttp_putOAuth1(http,True); CkHttp_putOAuthVerifier(http,''); CkHttp_putOAuthConsumerKey(http,'ETRADE_CONSUMER_KEY'); CkHttp_putOAuthConsumerSecret(http,'ETRADE_CONSUMER_SECRET'); // Load the access token previously obtained via the OAuth1 Authorization jsonToken := CkJsonObject_Create(); success := CkJsonObject_LoadFile(jsonToken,'qa_data/tokens/etrade.json'); if (success <> True) then begin Memo1.Lines.Add('Failed to load OAuth1 token'); Exit; end; CkHttp_putOAuthToken(http,CkJsonObject__stringOf(jsonToken,'oauth_token')); CkHttp_putOAuthTokenSecret(http,CkJsonObject__stringOf(jsonToken,'oauth_token_secret')); sandboxUrl := 'https://apisb.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel'; liveUrl := 'https://api.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel'; CkHttp_SetUrlVar(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 := CkXml_Create(); CkXml_putTag(xml,'CancelOrderRequest'); CkXml_UpdateChildContent(xml,'orderId','11'); CkXml_putEmitCompact(xml,True); resp := CkHttp_PText(http,'PUT',sandboxUrl,CkXml__getXml(xml),'utf-8','application/xml',False,False); if (CkHttp_getLastMethodSuccess(http) <> True) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; // Make sure a successful response was received. if (CkHttpResponse_getStatusCode(resp) > 200) then begin Memo1.Lines.Add(CkHttpResponse__statusLine(resp)); Memo1.Lines.Add(CkHttpResponse__header(resp)); Memo1.Lines.Add(CkHttpResponse__bodyStr(resp)); Exit; end; // 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_LoadXml(xml,CkHttpResponse__bodyStr(resp)); Memo1.Lines.Add(CkXml__getXml(xml)); accountId := CkXml_GetChildIntValue(xml,'accountId'); orderId := CkXml_GetChildIntValue(xml,'orderId'); cancelTime := CkXml__getChildContent(xml,'cancelTime'); code := CkXml_GetChildIntValue(xml,'Messages|Message|code'); description := CkXml__getChildContent(xml,'Messages|Message|description'); v_type := CkXml__getChildContent(xml,'Messages|Message|type'); Memo1.Lines.Add('Success.'); CkHttp_Dispose(http); CkJsonObject_Dispose(jsonToken); CkXml_Dispose(xml); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.