Sample code for 30+ languages & platforms
B4X Requires Chilkat v11.0.0+

effectconnect Read Orderlist

See more effectconnect Examples

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

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

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

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

Dim http As ChilkatHttp
http.Initialize("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 ChilkatDateTime
dt.Initialize
dt.SetFromCurrentSystemTime
Dim timestamp As String = dt.GetAsTimestamp(True)

http.SetRequestHeader("TIME", timestamp)
Log("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 ChilkatXml
xml.Initialize
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 ChilkatStringBuilder
sbXml.Initialize
xml.GetXmlSb(sbXml)

'  Build a string-to-sign and sign it using our effectconnect private key
Dim sbStringToSign As ChilkatStringBuilder
sbStringToSign.Initialize
sbStringToSign.AppendInt(sbXml.Length)
sbStringToSign.Append("POST")
sbStringToSign.Append(uri)
sbStringToSign.Append(apiVersion)
sbStringToSign.Append(timestamp)

Dim crypt As ChilkatCrypt2
crypt.Initialize("crypt")
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..
Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpStr("POST", fullUri, xml.GetXml, "utf-8", "application/xml", resp)
If success = False Then
    Log(http.LastErrorText)
    Return
End If


Log("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.
Dim xmlResp As ChilkatXml
xmlResp.Initialize
xmlResp.LoadXml(resp.BodyStr)

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