Sample code for 30+ languages & platforms
Ruby

effectconnect Read Orderlist

See more effectconnect Examples

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

Chilkat Ruby Downloads

Ruby
require 'chilkat'

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 = 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(true)

http.SetRequestHeader("TIME",timestamp)
print "timestamp = " + timestamp + "\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(true)

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 == false)
    print http.lastErrorText() + "\n";
    exit
end

print "response status code = " + resp.get_StatusCode().to_s() + "\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:" + "\n";
print xmlResp.getXml() + "\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()