Sample code for 30+ languages & platforms
PowerShell

effectconnect Read Orderlist

See more effectconnect Examples

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

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

# 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 = New-Object Chilkat.Http

# 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 = New-Object Chilkat.CkDateTime
$dt.SetFromCurrentSystemTime()
$timestamp = $dt.GetAsTimestamp($true)

$http.SetRequestHeader("TIME",$timestamp)
$("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

$xml = New-Object Chilkat.Xml
$xml.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.EmitCompact = $true

$sbXml = New-Object Chilkat.StringBuilder
$xml.GetXmlSb($sbXml)

# Build a string-to-sign and sign it using our effectconnect private key
$sbStringToSign = New-Object Chilkat.StringBuilder
$sbStringToSign.AppendInt($sbXml.Length)
$sbStringToSign.Append("POST")
$sbStringToSign.Append($uri)
$sbStringToSign.Append($apiVersion)
$sbStringToSign.Append($timestamp)

$crypt = New-Object Chilkat.Crypt2
$crypt.MacAlgorithm = "hmac"
$crypt.HashAlgorithm = "sha512"
$crypt.EncodingMode = "base64"
# Use your effectconnect private key here:
$crypt.SetMacKeyString("PRIVATE_KEY")
$http.SetRequestHeader("SIGNATURE",$crypt.MacStringENC($sbStringToSign.GetAsString()))

# Send the POST..
$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpStr("POST",$fullUri,$xml.GetXml(),"utf-8","application/xml",$resp)
if ($success -eq $false) {
    $($http.LastErrorText)
    exit
}

$("response status code = " + $resp.StatusCode)

# 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 = New-Object Chilkat.Xml
$xmlResp.LoadXml($resp.BodyStr)

$("response body:")
$($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()