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 List TransactionsGets transactions for the selected brokerage account. For more information, see https://apisb.etrade.com/docs/api/account/api-transaction-v1.html
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}/transactions" liveUrl.s = "https://api.etrade.com/v1/accounts/{$accountIdKey}/transactions" CkHttp::ckSetUrlVar(http,"accountIdKey","6_Dpy0rmuQ9cu9IbTfvF2A") resp.i = CkHttp::ckQuickGetObj(http,sandboxUrl) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) 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) ProcedureReturn EndIf ; 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.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadXml(xml,CkHttpResponse::ckBodyStr(resp)) Debug CkXml::ckGetXml(xml) transactionId.s accountId.i transactionDate.s postDate.s amount.i description.s description2.i transactionType.s imageFlag.s instType.s quantity.i price.i settlementCurrency.s paymentCurrency.s fee.i settlementDate.s detailsURI.s pageMarkers.s moreTransactions.s transactionCount.i totalCount.i i.i = 0 count_i.i = CkXml::ckNumChildrenHavingTag(xml,"Transaction") While i < count_i CkXml::setCkI(xml, i) transactionId = CkXml::ckGetChildContent(xml,"Transaction[i]|transactionId") accountId = CkXml::ckGetChildIntValue(xml,"Transaction[i]|accountId") transactionDate = CkXml::ckGetChildContent(xml,"Transaction[i]|transactionDate") postDate = CkXml::ckGetChildContent(xml,"Transaction[i]|postDate") amount = CkXml::ckGetChildIntValue(xml,"Transaction[i]|amount") description = CkXml::ckGetChildContent(xml,"Transaction[i]|description") description2 = CkXml::ckGetChildIntValue(xml,"Transaction[i]|description2") transactionType = CkXml::ckGetChildContent(xml,"Transaction[i]|transactionType") imageFlag = CkXml::ckGetChildContent(xml,"Transaction[i]|imageFlag") instType = CkXml::ckGetChildContent(xml,"Transaction[i]|instType") quantity = CkXml::ckGetChildIntValue(xml,"Transaction[i]|brokerage|quantity") price = CkXml::ckGetChildIntValue(xml,"Transaction[i]|brokerage|price") settlementCurrency = CkXml::ckGetChildContent(xml,"Transaction[i]|brokerage|settlementCurrency") paymentCurrency = CkXml::ckGetChildContent(xml,"Transaction[i]|brokerage|paymentCurrency") fee = CkXml::ckGetChildIntValue(xml,"Transaction[i]|brokerage|fee") settlementDate = CkXml::ckGetChildContent(xml,"Transaction[i]|brokerage|settlementDate") detailsURI = CkXml::ckGetChildContent(xml,"Transaction[i]|detailsURI") i = i + 1 Wend pageMarkers = CkXml::ckGetChildContent(xml,"pageMarkers") moreTransactions = CkXml::ckGetChildContent(xml,"moreTransactions") transactionCount = CkXml::ckGetChildIntValue(xml,"transactionCount") totalCount = CkXml::ckGetChildIntValue(xml,"totalCount") Debug "Success." CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.