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
(Objective-C) effectconnect Read OrderlistGet a set of orders filtered by the parameters in the XML payload.
#import <NSString.h> #import <CkoHttp.h> #import <CkoDateTime.h> #import <CkoXml.h> #import <CkoStringBuilder.h> #import <CkoCrypt2.h> #import <CkoHttpResponse.h> // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. BOOL success; NSString *fullUri = @"https://submit.effectconnect.com/orderlist"; NSString *uri = @"/orderlist"; NSString *apiVersion = @"2.0"; CkoHttp *http = [[CkoHttp alloc] init]; // Use your effectconnect public key here.. [http SetRequestHeader: @"KEY" value: @"PUBLIC_KEY"]; [http SetRequestHeader: @"VERSION" value: apiVersion]; [http SetRequestHeader: @"URI" value: uri]; [http SetRequestHeader: @"RESPONSETYPE" value: @"XML"]; [http SetRequestHeader: @"RESPONSELANGUAGE" value: @"en"]; // Get the current date/time in timestamp format. CkoDateTime *dt = [[CkoDateTime alloc] init]; [dt SetFromCurrentSystemTime]; NSString *timestamp = [dt GetAsTimestamp: YES]; [http SetRequestHeader: @"TIME" value: timestamp]; NSLog(@"%@%@",@"timestamp = ",timestamp); // Create the following XML request body: // <?xml version="1.0" encoding="utf-8"?> // <list> // <filters> // <fromDateFilter> // <filterValue>2018-09-14T12:12:12+01:00</filterValue> // </fromDateFilter> // <toDateFilter> // <filterValue>2019-04-13T23:59:59+01:00</filterValue> // </toDateFilter> // <hasStatusFilter> // <filterValue>paid</filterValue> // </hasStatusFilter> // <hasTagFilter> // <filterValue> // <tagName>Test</tagName> // <exclude>false</exclude> // </filterValue> // </hasTagFilter> // </filters> // </list> // Use this online tool to generate the code from sample XML: // Generate Code to Create XML CkoXml *xml = [[CkoXml alloc] init]; xml.Tag = @"list"; [xml UpdateChildContent: @"filters|fromDateFilter|filterValue" value: @"2018-09-14T12:12:12+01:00"]; [xml UpdateChildContent: @"filters|toDateFilter|filterValue" value: @"2019-04-13T23:59:59+01:00"]; [xml UpdateChildContent: @"filters|hasStatusFilter|filterValue" value: @"paid"]; [xml UpdateChildContent: @"filters|hasTagFilter|filterValue|tagName" value: @"Test"]; [xml UpdateChildContent: @"filters|hasTagFilter|filterValue|exclude" value: @"false"]; xml.EmitCompact = YES; CkoStringBuilder *sbXml = [[CkoStringBuilder alloc] init]; [xml GetXmlSb: sbXml]; // Build a string-to-sign and sign it using our effectconnect private key CkoStringBuilder *sbStringToSign = [[CkoStringBuilder alloc] init]; [sbStringToSign AppendInt: sbXml.Length]; [sbStringToSign Append: @"POST"]; [sbStringToSign Append: uri]; [sbStringToSign Append: apiVersion]; [sbStringToSign Append: timestamp]; CkoCrypt2 *crypt = [[CkoCrypt2 alloc] init]; crypt.MacAlgorithm = @"hmac"; crypt.HashAlgorithm = @"sha512"; crypt.EncodingMode = @"base64"; // Use your effectconnect private key here: [crypt SetMacKeyString: @"PRIVATE_KEY"]; [http SetRequestHeader: @"SIGNATURE" value: [crypt MacStringENC: [sbStringToSign GetAsString]]]; // Send the POST.. CkoHttpResponse *resp = [http PostXml: fullUri xmlDoc: [xml GetXml] charset: @"utf-8"]; if (http.LastMethodSuccess == NO) { NSLog(@"%@",http.LastErrorText); return; } NSLog(@"%@%d",@"response status code = ",[resp.StatusCode intValue]); // Examine the response. The response status code can be 200 for both errors and success. // The success or error is based on the XML returned in the response body. CkoXml *xmlResp = [[CkoXml alloc] init]; [xmlResp LoadXml: resp.BodyStr]; NSLog(@"%@",@"response body:"); NSLog(@"%@",[xmlResp GetXml]); // Remove previously set headers (unless we want the same headers for the next request, // in which case we may remove or update individual headers by calling SetRequestHeader. [http ClearHeaders]; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.