Sample code for 30+ languages & platforms
Dart 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 Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // 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

  final xml = CkXml();
  xml.tag = 'soapenv:Envelope';
  xml.addAttribute('xmlns:ser', 'http://mastercard.com/sd/pc/service');
  xml.addAttribute('xmlns:soapenv', 'http://schemas.xmlsoap.org/soap/envelope/');
  xml.updateChildContent('soapenv:Header', '');
  xml.updateChildContent('soapenv:Body|ser:getDataSourcesRequest', '');

  // We'll need to get our signing RSA key from the PFX (provided by Mastercard)
  final pfx = CkPfx();
  try {
    pfx.loadPfxFile('qa_data/pfx/MCD_Sandbox_chilkat_iccp_API_Keys/chilkat_iccp-sandbox.p12', 'keystorepassword');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final privKey = CkPrivateKey();
  try {
    pfx.privateKeyAt(0, privKey);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final http = CkHttp();

  http.oAuth1 = true;
  // Use your own consumer key (this is not a valid consumer key)
  http.oAuthConsumerKey = 'MLBRl0-xxxxxxxxxxxxxxxxxxxxxxxxxx_BUNtu5xxxxx20b!a075a714a5fxxxxxxxxxxxxx59cd02b60000000000000000';
  http.oAuthSigMethod = 'RSA-SHA256';
  try {
    http.setOAuthRsaKey(privKey);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

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

  // Send the SOAP XML request and get the response.
  // Chilkat automaticaly adds the OAuth1 authentication.
  final resp = CkHttpResponse();
  try {
    http.httpStr('POST', 'https://sandbox.api.mastercard.com/iccp/financial', xml.getXml(), 'utf-8', 'application/xml', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Examine the response status code and the XML response body.
  print('Response status code = ${resp.statusCode}');

  final respXml = CkXml();
  resp.getBodyXml(respXml);

  print('Response XML:');
  print(respXml.getXml());

  // 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
}