Sample code for 30+ languages & platforms
Xojo Plugin

effectconnect Read Orderlist

See more effectconnect Examples

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

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

Dim fullUri As String
fullUri = "https://submit.effectconnect.com/orderlist"
Dim uri As String
uri = "/orderlist"
Dim apiVersion As String
apiVersion = "2.0"

Dim http As New 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.
Dim dt As New Chilkat.CkDateTime
success = dt.SetFromCurrentSystemTime()
Dim timestamp As String
timestamp = dt.GetAsTimestamp(True)

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

Dim xml As New 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

Dim sbXml As New Chilkat.StringBuilder
success = xml.GetXmlSb(sbXml)

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

Dim crypt As New Chilkat.Crypt2
crypt.MacAlgorithm = "hmac"
crypt.HashAlgorithm = "sha512"
crypt.EncodingMode = "base64"
// Use your effectconnect private key here:
success = crypt.SetMacKeyString("PRIVATE_KEY")
http.SetRequestHeader "SIGNATURE",crypt.MacStringENC(sbStringToSign.GetAsString())

// Send the POST..
Dim resp As New Chilkat.HttpResponse
success = http.HttpStr("POST",fullUri,xml.GetXml(),"utf-8","application/xml",resp)
If (success = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

System.DebugLog("response status code = " + Str(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.
Dim xmlResp As New Chilkat.Xml
success = xmlResp.LoadXml(resp.BodyStr)

System.DebugLog("response body:")
System.DebugLog(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