Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Mastercard ICCP Get Data Source with OAuth1See more Mastercard ExamplesDemonstrates 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. Note: This example requires Chilkat v9.5.0.91 or later.
IncludeFile "CkHttp.pb" IncludeFile "CkXml.pb" IncludeFile "CkPrivateKey.pb" IncludeFile "CkPfx.pb" IncludeFile "CkHttpResponse.pb" Procedure ChilkatExample() ; 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 xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::setCkTag(xml, "soapenv:Envelope") CkXml::ckAddAttribute(xml,"xmlns:ser","http://mastercard.com/sd/pc/service") CkXml::ckAddAttribute(xml,"xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/") CkXml::ckUpdateChildContent(xml,"soapenv:Header","") CkXml::ckUpdateChildContent(xml,"soapenv:Body|ser:getDataSourcesRequest","") ; We'll need to get our signing RSA key from the PFX (provided by Mastercard) pfx.i = CkPfx::ckCreate() If pfx.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkPfx::ckLoadPfxFile(pfx,"qa_data/pfx/MCD_Sandbox_chilkat_iccp_API_Keys/chilkat_iccp-sandbox.p12","keystorepassword") If success = 0 Debug CkPfx::ckLastErrorText(pfx) CkXml::ckDispose(xml) CkPfx::ckDispose(pfx) ProcedureReturn EndIf privKey.i = CkPfx::ckGetPrivateKey(pfx,0) If CkPfx::ckLastMethodSuccess(pfx) = 0 Debug CkPfx::ckLastErrorText(pfx) CkXml::ckDispose(xml) CkPfx::ckDispose(pfx) ProcedureReturn EndIf http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttp::setCkOAuth1(http, 1) ; Use your own consumer key (this is not a valid consumer key) CkHttp::setCkOAuthConsumerKey(http, "MLBRl0-xxxxxxxxxxxxxxxxxxxxxxxxxx_BUNtu5xxxxx20b!a075a714a5fxxxxxxxxxxxxx59cd02b60000000000000000") CkHttp::setCkOAuthSigMethod(http, "RSA-SHA256") success = CkHttp::ckSetOAuthRsaKey(http,privKey) If success = 0 Debug CkHttp::ckLastErrorText(http) CkPrivateKey::ckDispose(privKey) CkXml::ckDispose(xml) CkPfx::ckDispose(pfx) CkHttp::ckDispose(http) ProcedureReturn EndIf CkPrivateKey::ckDispose(privKey) ; Tell Chilkat to automatically calculate and add the oauth_body_hash field when sending the request. ; This property was added in Chilkat v9.5.0.91. CkHttp::setCkOAuthBodyHash(http, 1) ; Send the SOAP XML request and get the response. ; Chilkat automaticaly adds the OAuth1 authentication. resp.i = CkHttp::ckPostXml(http,"https://sandbox.api.mastercard.com/iccp/financial",CkXml::ckGetXml(xml),"utf-8") If CkHttp::ckLastMethodSuccess(http) = 0 Debug CkHttp::ckLastErrorText(http) CkXml::ckDispose(xml) CkPfx::ckDispose(pfx) CkHttp::ckDispose(http) ProcedureReturn EndIf ; Examine the response status code and the XML response body. Debug "Response status code = " + Str(CkHttpResponse::ckStatusCode(resp)) respXml.i = CkXml::ckCreate() If respXml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttpResponse::ckGetBodyXml(resp,respXml) Debug "Response XML:" Debug CkXml::ckGetXml(respXml) ; 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 CkHttpResponse::ckDispose(resp) CkXml::ckDispose(xml) CkPfx::ckDispose(pfx) CkHttp::ckDispose(http) CkXml::ckDispose(respXml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.