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

Mastercard ICCP Get Data Source with OAuth1

See more Mastercard Examples

Demonstrates OAuth1 authentication with the Mastercard SOAP API's. This example sends a POST to the sandbox endpoint for the "In Control for Commercial Payments" (ICCP) API.

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.

-- --------------------------------------------------------------------------------
-- Also see Chilkat's Online WSDL Code Generator
-- to generate code and SOAP Request and Response XML for each operation in a WSDL.
-- --------------------------------------------------------------------------------

-- First build the XML body of the SOAP request:

--     <soapenv:Envelope
--         xmlns:ser="http://mastercard.com/sd/pc/service"
--         xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
--         <soapenv:Header>
--         </soapenv:Header>
--         <soapenv:Body>
--             <ser:getDataSourcesRequest></ser:getDataSourcesRequest>
--         </soapenv:Body>
--     </soapenv:Envelope>

-- Use this online tool to generate code from sample XML:
-- Generate Code to Create XML

local xml = chilkat.Xml.new()
xml.tag = "soapenv:Envelope"
xml:add_attribute("xmlns:ser", "http://mastercard.com/sd/pc/service")
xml:add_attribute("xmlns:soapenv", "http://schemas.xmlsoap.org/soap/envelope/")
xml:update_child_content("soapenv:Header", "")
xml:update_child_content("soapenv:Body|ser:getDataSourcesRequest", "")

-- We'll need to get our signing RSA key from the PFX (provided by Mastercard)
local pfx = chilkat.Pfx.new()
local success = pfx:load_pfx_file("qa_data/pfx/MCD_Sandbox_chilkat_iccp_API_Keys/chilkat_iccp-sandbox.p12", "keystorepassword")
if not success then
    print(pfx.last_error_text)
    return
end

local privKey = chilkat.PrivateKey.new()
success = pfx:private_key_at(0, privKey)
if not success then
    print(pfx.last_error_text)
    return
end

local http = chilkat.Http.new()

http.oauth1 = true
-- Use your own consumer key (this is not a valid consumer key)
http.oauth_consumer_key = "MLBRl0-xxxxxxxxxxxxxxxxxxxxxxxxxx_BUNtu5xxxxx20b!a075a714a5fxxxxxxxxxxxxx59cd02b60000000000000000"
http.oauth_sig_method = "RSA-SHA256"
success = http:set_oauth_rsa_key(privKey)
if not success then
    print(http.last_error_text)
    return
end

-- Tell Chilkat to automatically calculate and add the oauth_body_hash field when sending the request.
http.oauth_body_hash = true

-- Send the SOAP XML request and get the response.
-- Chilkat automaticaly adds the OAuth1 authentication.
local resp = chilkat.HttpResponse.new()
success = http:http_str("POST", "https://sandbox.api.mastercard.com/iccp/financial", xml:get_xml(), "utf-8", "application/xml", resp)
if not success then
    print(http.last_error_text)
    return
end

-- Examine the response status code and the XML response body.
print("Response status code = " .. resp.status_code)

local respXml = chilkat.Xml.new()
resp:get_body_xml(respXml)

print("Response XML:")
print(respXml:get_xml())

-- If desired, use this online tool to generate parsing code from response XML.
-- (Run your code once to get a representative sample response, and then generate the parsing code.)
-- Generate Parsing Code from XML