Sample code for 30+ languages & platforms
Perl

effectconnect Read Orderlist

See more effectconnect Examples

Get a set of orders filtered by the parameters in the XML payload.

Chilkat Perl Downloads

Perl
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();