Perl
Perl
effectconnect Read Orderlist
See more effectconnect Examples
Get a set of orders filtered by the parameters in the XML payload.Chilkat Perl Downloads
use chilkat();
$success = 0;
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$fullUri = "https://submit.effectconnect.com/orderlist";
$uri = "/orderlist";
$apiVersion = "2.0";
$http = chilkat::CkHttp->new();
# Use your effectconnect public key here..
$http->SetRequestHeader("KEY","PUBLIC_KEY");
$http->SetRequestHeader("VERSION",$apiVersion);
$http->SetRequestHeader("URI",$uri);
$http->SetRequestHeader("RESPONSETYPE","XML");
$http->SetRequestHeader("RESPONSELANGUAGE","en");
# Get the current date/time in timestamp format.
$dt = chilkat::CkDateTime->new();
$dt->SetFromCurrentSystemTime();
$timestamp = $dt->getAsTimestamp(1);
$http->SetRequestHeader("TIME",$timestamp);
print "timestamp = " . $timestamp . "\r\n";
# 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
$xml = chilkat::CkXml->new();
$xml->put_Tag("list");
$xml->UpdateChildContent("filters|fromDateFilter|filterValue","2018-09-14T12:12:12+01:00");
$xml->UpdateChildContent("filters|toDateFilter|filterValue","2019-04-13T23:59:59+01:00");
$xml->UpdateChildContent("filters|hasStatusFilter|filterValue","paid");
$xml->UpdateChildContent("filters|hasTagFilter|filterValue|tagName","Test");
$xml->UpdateChildContent("filters|hasTagFilter|filterValue|exclude","false");
$xml->put_EmitCompact(1);
$sbXml = chilkat::CkStringBuilder->new();
$xml->GetXmlSb($sbXml);
# Build a string-to-sign and sign it using our effectconnect private key
$sbStringToSign = chilkat::CkStringBuilder->new();
$sbStringToSign->AppendInt($sbXml->get_Length());
$sbStringToSign->Append("POST");
$sbStringToSign->Append($uri);
$sbStringToSign->Append($apiVersion);
$sbStringToSign->Append($timestamp);
$crypt = chilkat::CkCrypt2->new();
$crypt->put_MacAlgorithm("hmac");
$crypt->put_HashAlgorithm("sha512");
$crypt->put_EncodingMode("base64");
# Use your effectconnect private key here:
$crypt->SetMacKeyString("PRIVATE_KEY");
$http->SetRequestHeader("SIGNATURE",$crypt->macStringENC($sbStringToSign->getAsString()));
# Send the POST..
$resp = chilkat::CkHttpResponse->new();
$success = $http->HttpStr("POST",$fullUri,$xml->getXml(),"utf-8","application/xml",$resp);
if ($success == 0) {
print $http->lastErrorText() . "\r\n";
exit;
}
print "response status code = " . $resp->get_StatusCode() . "\r\n";
# 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.
$xmlResp = chilkat::CkXml->new();
$xmlResp->LoadXml($resp->bodyStr());
print "response body:" . "\r\n";
print $xmlResp->getXml() . "\r\n";
# 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();