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
(DataFlex) Belgium eHealth Platform - AddressBook - Search for ProfessionalsSee more Belgian eHealth Platform ExamplesDemonstrates how to search for professionals using the AddressBook API. For more information, see https://www.ehealth.fgov.be/ehealthplatform/nl/data/file/view/6c419e5685327eed7200d1c543c38a55d5387d30?name=AddressBook%20Consultation%20WS%20v.1%20-%20Cookbook%20v.1.11%20dd%2031082023.pdf
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Variant vCert Handle hoCert Handle hoBdSecToken Integer iStartIdx Integer iEndIdx String sBase64_saml_token Handle hoXml Handle hoDt Handle hoHttp Variant vResp Handle hoResp String sTemp1 Integer iTemp1 Boolean bTemp1 // This example assumes 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. // -------------------------------------------------------------------------------- Move True To iSuccess // Provide a certificate + private key. // Note: If your certificate + private key is located on a hardware token or smartcard, you can call a different function to load from smartcard.. Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get ComLoadPfxFile Of hoCert "SSIN=12345678.acc.p12" "p12_password" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End // Let's get the SAML Security Token obtained from https://services-acpt.ehealth.fgov.be/IAM/SecurityTokenService/v1/RequestSecurityToken // a very short time ago.. // See this example for how we got the SAML security token: eHealth Belgium Request Security Token Get Create (RefClass(cComChilkatBinData)) To hoBdSecToken If (Not(IsComObjectCreated(hoBdSecToken))) Begin Send CreateComObject of hoBdSecToken End Get ComLoadFile Of hoBdSecToken "qa_data/tokens/ehealth-fgov-be-sectoken.xml" To iSuccess If (iSuccess = False) Begin Showln "Failed to load SAML security token" Procedure_Return End // The SAML security token is just the part from <Assertion ..> ... </Assertion> // So let's get just that part.. Get ComFindString Of hoBdSecToken "<Assertion" 0 "utf-8" To iStartIdx If (iStartIdx < 0) Begin Showln "Did not find the start of the SAML assertion." Procedure_Return End Get ComFindString Of hoBdSecToken "</Assertion>" 0 "utf-8" To iEndIdx If (iEndIdx < 0) Begin Showln "Did not find the end of the SAML assertion." Procedure_Return End // Adjust the index to the 1st byte after "</Assertion>" Move (iEndIdx + 12) To iEndIdx Get ComGetEncodedChunk Of hoBdSecToken iStartIdx (iEndIdx - iStartIdx) "base64" To sBase64_saml_token Showln sBase64_saml_token // Our SOAP request will look like this: // The SOAP request to search for professionals looks like this: // <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:add="urn:be:fgov:ehealth:addressbook:protocol:v1"> // <soapenv:Header> // <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> // <wsse:BinarySecurityToken // ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID" // EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">BASE64_SAML_TOKEN</wsse:BinarySecurityToken> // </wsse:Security> // </soapenv:Header> // <soapenv:Body> // <add:SearchProfessionalsRequest Id="bdc38ae62-3e7f-4f80-80f7-c3e745500fa3" IssueInstant="2016-03-23T18:49:26.968+01:00" Offset="0" MaxElements="100"> // <add:SSIN>74062423769</add:SSIN> // </add:SearchProfessionalsRequest> // </soapenv:Body> // </soapenv:Envelope> Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Set ComTag Of hoXml To "soapenv:Envelope" Get ComUpdateAttrAt Of hoXml "soapenv:Header|wsse:Security" True "xmlns:wsse" "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" To iSuccess Get ComUpdateAttrAt Of hoXml "soapenv:Header|wsse:Security|wsse:BinarySecurityToken" True "ValueType" "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID" To iSuccess Get ComUpdateAttrAt Of hoXml "soapenv:Header|wsse:Security|wsse:BinarySecurityToken" True "EncodingType" "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" To iSuccess Send ComUpdateChildContent To hoXml "soapenv:Header|wsse:Security|wsse:BinarySecurityToken" sBase64_saml_token Get ComUpdateAttrAt Of hoXml "soapenv:Body|add:SearchProfessionalsRequest" True "Id" "bdc38ae62-3e7f-4f80-80f7-c3e745500fa3" To iSuccess Get Create (RefClass(cComCkDateTime)) To hoDt If (Not(IsComObjectCreated(hoDt))) Begin Send CreateComObject of hoDt End Get ComSetFromCurrentSystemTime Of hoDt To iSuccess Get ComGetAsTimestamp Of hoDt True To sTemp1 Get ComUpdateAttrAt Of hoXml "soapenv:Body|add:SearchProfessionalsRequest" True "IssueInstant" sTemp1 To iSuccess Get ComUpdateAttrAt Of hoXml "soapenv:Body|add:SearchProfessionalsRequest" True "Offset" "0" To iSuccess Get ComUpdateAttrAt Of hoXml "soapenv:Body|add:SearchProfessionalsRequest" True "MaxElements" "100" To iSuccess Send ComUpdateChildContent To hoXml "soapenv:Body|add:SearchProfessionalsRequest|urn:SSIN" "74062423769" Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Get pvComObject of hoCert to vCert Get ComSetSslClientCert Of hoHttp vCert To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Send ComSetRequestHeader To hoHttp "Content-Type" "text/xml" Send ComSetRequestHeader To hoHttp "SOAPAction" "urn:be:fgov:ehealth:addressbook:protocol:v1:searchProfessionals" Get ComGetXml Of hoXml To sTemp1 Get ComPostXml Of hoHttp "https://services.ehealth.fgov.be/AddressBook/v1" sTemp1 "utf-8" To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 Get ComStatusCode Of hoResp To iTemp1 Showln "response status code = " iTemp1 Send Destroy of hoResp End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.