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

Peoplevox WMS Authentication

See more HTTP Examples

Provides an example of a call to the Peoplevox WMS Authenticate using SOAP 1.1.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

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

-- Sends a POST that looks like this:

--     POST /PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx HTTP/1.1
--     Content-Type: text/xml;charset=UTF-8
--     SOAPAction: http://www.peoplevox.net/Authenticate
--     Content-Length: (automatically computed and added by Chilkat)
--     Host: qac.peoplevox.net
--
--     <?xml version="1.0" encoding="utf-8"?>
--     <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:peop="http://www.peoplevox.net/">
--        <soapenv:Header/>
--        <soapenv:Body>
--           <peop:Authenticate>
--              <peop:clientId>PEOPLEVOX_CLIENT_ID</peop:clientId>
--              <peop:username>PEOPLEVOX_USERNAME</peop:username>
--              <peop:password>PEOPLEVOX_BASE64_PASSWORD</peop:password>
--           </peop:Authenticate>
--        </soapenv:Body>
--     </soapenv:Envelope>
--

local sbSoapXml = chilkat.StringBuilder.new()
sbSoapXml:append("<?xml version=\"1.0\" encoding=\"utf-8\"?>")
sbSoapXml:append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:peop=\"http://www.peoplevox.net/\">")
sbSoapXml:append("   <soapenv:Header/>")
sbSoapXml:append("   <soapenv:Body>")
sbSoapXml:append("      <peop:Authenticate>")
sbSoapXml:append("         <peop:clientId>PEOPLEVOX_CLIENT_ID</peop:clientId>")
sbSoapXml:append("         <peop:username>PEOPLEVOX_USERNAME</peop:username>")
sbSoapXml:append("         <peop:password>PEOPLEVOX_BASE64_PASSWORD</peop:password>")
sbSoapXml:append("      </peop:Authenticate>")
sbSoapXml:append("   </soapenv:Body>")
sbSoapXml:append("</soapenv:Envelope>")

-- Base64 encode the password and update the SOAP XML.
local crypt = chilkat.Crypt2.new()
local passwordBase64 = crypt:encode_string("PEOPLEVOX_PASSWORD", "utf-8", "base64")
local numReplacements = sbSoapXml:replace("PEOPLEVOX_BASE64_PASSWORD", passwordBase64)

local req = chilkat.HttpRequest.new()
req.http_verb = "POST"
req.send_charset = true
req.charset = "utf-8"
req:add_header("Content-Type", "text/xml")
req:add_header("SOAPAction", "http://www.peoplevox.net/Authenticate")
req.path = "/PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx"
local success = req:load_body_from_string(sbSoapXml:get_as_string(), "utf-8")

local http = chilkat.Http.new()
http.follow_redirects = true

local resp = chilkat.HttpResponse.new()
success = http:http_sreq("qac.peoplevox.net", 443, true, req, resp)
if not success then
    print(http.last_error_text)
    return
end

-- We should expect a 200 response if successful.
if resp.status_code ~= 200 then
    print("Response StatusCode = " .. resp.status_code)
    print("Response StatusLine: " .. resp.status_line)
    print("Response Header:")
    print(resp.header)
    return
end

-- A successful response returns this XML:

-- <?xml version="1.0" encoding="utf-8" ?>
-- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
--     <soap:Body>
--         <AuthenticateResponse xmlns="http://www.peoplevox.net/">
--             <AuthenticateResult>
--                 <ResponseId>0</ResponseId>
--                 <TotalCount>1</TotalCount>
--                 <Detail>PEOPLEVOX_CLIENT_ID,7fe13431-c67f-4d52-bcfd-b60fbfa3b0ca</Detail>
--                 <Statuses />
--                 <ImportingQueueId>0</ImportingQueueId>
--                 <SalesOrdersToDespatchIds />
--             </AuthenticateResult>
--         </AuthenticateResponse>
--     </soap:Body>
-- </soap:Envelope>
--

local xmlResponse = chilkat.Xml.new()
success = xmlResponse:load_xml(resp.body_str)
print(xmlResponse:get_xml())

-- Show how to get the Detail, which must be the ClientId,SessionId
local detail = xmlResponse:chilkat_path("soap:Body|AuthenticateResponse|AuthenticateResult|Detail|*")
print("Detail = " .. detail)