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 List TransactionsGets transactions for the selected brokerage account. For more information, see https://apisb.etrade.com/docs/api/account/api-transaction-v1.html
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, Xml, HttpResponse, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; jsonToken: HCkJsonObject; success: Boolean; sandboxUrl: PWideChar; liveUrl: PWideChar; resp: HCkHttpResponse; xml: HCkXml; transactionId: PWideChar; accountId: Integer; transactionDate: PWideChar; postDate: PWideChar; amount: Integer; description: PWideChar; description2: Integer; transactionType: PWideChar; imageFlag: PWideChar; instType: PWideChar; quantity: Integer; price: Integer; settlementCurrency: PWideChar; paymentCurrency: PWideChar; fee: Integer; settlementDate: PWideChar; detailsURI: PWideChar; pageMarkers: PWideChar; moreTransactions: PWideChar; transactionCount: Integer; totalCount: Integer; i: Integer; count_i: Integer; 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}/transactions'; liveUrl := 'https://api.etrade.com/v1/accounts/{$accountIdKey}/transactions'; CkHttp_SetUrlVar(http,'accountIdKey','6_Dpy0rmuQ9cu9IbTfvF2A'); resp := CkHttp_QuickGetObj(http,sandboxUrl); 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 // <?xml version="1.0" encoding="UTF-8"?> // <TransactionListResponse> // <Transaction> // <transactionId>18165100001766</transactionId> // <accountId>83564979</accountId> // <transactionDate>1528948800000</transactionDate> // <postDate>1528948800000</postDate> // <amount>-2</amount> // <description>ACH WITHDRAWL REFID:109187276;</description> // <description2>109187276</description2> // <transactionType>Transfer</transactionType> // <memo /> // <imageFlag>false</imageFlag> // <instType>BROKERAGE</instType> // <brokerage> // <product /> // <quantity>0</quantity> // <price>0</price> // <settlementCurrency>USD</settlementCurrency> // <paymentCurrency>USD</paymentCurrency> // <fee>0</fee> // <settlementDate>1528948800000</settlementDate> // </brokerage> // <detailsURI>https://api.etrade.com/v1/accounts/yIFaUoJ81qyAhgxLWRQ42g/transactions/18165100001766</detailsURI> // </Transaction> // <Transaction> // <transactionId>18158100000983</transactionId> // <accountId>83564979</accountId> // <transactionDate>1528344000000</transactionDate> // <postDate>1528344000000</postDate> // <amount>-2</amount> // <description>ACH WITHDRAWL REFID:98655276;</description> // <description2>98655276</description2> // <transactionType>Transfer</transactionType> // <memo /> // <imageFlag>false</imageFlag> // <instType>BROKERAGE</instType> // <brokerage> // <product /> // <quantity>0</quantity> // <price>0</price> // <settlementCurrency>USD</settlementCurrency> // <paymentCurrency>USD</paymentCurrency> // <fee>0</fee> // <settlementDate>1528344000000</settlementDate> // </brokerage> // <detailsURI>https://api.etrade.com/v1/accounts/yIFaUoJ81qyAhgxLWRQ42g/transactions/18158100000983</detailsURI> // </Transaction> // <pageMarkers>eNpTsAlITE91zi%2FNK%2FHMc04syi8tTs2xM7TRxybMpWATkl%2BSmBOUmpxflAKWtTO10ccQg6mDmwEyEE0EqAbE8SvNTUotCk4tLE3NS061M9Ax0DEEYgOIA9BkuRQgmjxTfDKLQUYoQAV8E4uyU4vsDC0MzUwNDYDA0NzMrKamBmIKVJYLphpiKsyTUB7IbH1kwwFa7F0D</pageMarkers> // <moreTransactions>false</moreTransactions> // <transactionCount>5</transactionCount> // <totalCount>5</totalCount> // </TransactionListResponse> xml := CkXml_Create(); CkXml_LoadXml(xml,CkHttpResponse__bodyStr(resp)); Memo1.Lines.Add(CkXml__getXml(xml)); i := 0; count_i := CkXml_NumChildrenHavingTag(xml,'Transaction'); while i < count_i do begin CkXml_putI(xml,i); transactionId := CkXml__getChildContent(xml,'Transaction[i]|transactionId'); accountId := CkXml_GetChildIntValue(xml,'Transaction[i]|accountId'); transactionDate := CkXml__getChildContent(xml,'Transaction[i]|transactionDate'); postDate := CkXml__getChildContent(xml,'Transaction[i]|postDate'); amount := CkXml_GetChildIntValue(xml,'Transaction[i]|amount'); description := CkXml__getChildContent(xml,'Transaction[i]|description'); description2 := CkXml_GetChildIntValue(xml,'Transaction[i]|description2'); transactionType := CkXml__getChildContent(xml,'Transaction[i]|transactionType'); imageFlag := CkXml__getChildContent(xml,'Transaction[i]|imageFlag'); instType := CkXml__getChildContent(xml,'Transaction[i]|instType'); quantity := CkXml_GetChildIntValue(xml,'Transaction[i]|brokerage|quantity'); price := CkXml_GetChildIntValue(xml,'Transaction[i]|brokerage|price'); settlementCurrency := CkXml__getChildContent(xml,'Transaction[i]|brokerage|settlementCurrency'); paymentCurrency := CkXml__getChildContent(xml,'Transaction[i]|brokerage|paymentCurrency'); fee := CkXml_GetChildIntValue(xml,'Transaction[i]|brokerage|fee'); settlementDate := CkXml__getChildContent(xml,'Transaction[i]|brokerage|settlementDate'); detailsURI := CkXml__getChildContent(xml,'Transaction[i]|detailsURI'); i := i + 1; end; pageMarkers := CkXml__getChildContent(xml,'pageMarkers'); moreTransactions := CkXml__getChildContent(xml,'moreTransactions'); transactionCount := CkXml_GetChildIntValue(xml,'transactionCount'); totalCount := CkXml_GetChildIntValue(xml,'totalCount'); Memo1.Lines.Add('Success.'); CkHttp_Dispose(http); CkJsonObject_Dispose(jsonToken); CkXml_Dispose(xml); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.