|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (C) ABN AMRO OAuth2 Client Credentials AuthenticationDemonstrates how to obtain an access token for an ABN AMRO online API using OAuth2 with the Client Credentials flow. Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://developer.abnamro.com/api/payment-initiation-v1/payment-initiation-tutorial 
 #include <C_CkCert.h> #include <C_CkBinData.h> #include <C_CkPrivateKey.h> #include <C_CkHttp.h> #include <C_CkHttpRequest.h> #include <C_CkHttpResponse.h> #include <C_CkJsonObject.h> void ChilkatSample(void) { BOOL success; HCkCert cert; HCkBinData bdKey; HCkPrivateKey privKey; HCkHttp http; HCkHttpRequest req; HCkHttpResponse resp; HCkJsonObject json; success = FALSE; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // This example sends the following CURL request: // curl -X POST -k https://auth-sandbox.connect.abnamro.com:8443/as/token.oauth2 \ // -v \ // --cert TPPCertificate.crt \ // --key TPPprivateKey.key \ // -H 'Cache-Control: no-cache' \ // -H 'Content-Type: application/x-www-form-urlencoded' \ // -d 'grant_type=client_credentials&client_id=TPP_test&scope=psd2:payment:sepa:write psd2:payment:sepa:read' cert = CkCert_Create(); success = CkCert_LoadFromFile(cert,"qa_data/certs/TPPCertificate.cer"); if (success == FALSE) { printf("%s\n",CkCert_lastErrorText(cert)); CkCert_Dispose(cert); return; } bdKey = CkBinData_Create(); success = CkBinData_LoadFile(bdKey,"qa_data/certs/TPPprivateKey.key"); privKey = CkPrivateKey_Create(); success = CkPrivateKey_LoadAnyFormat(privKey,bdKey,"passwordIfNeeded"); if (success == FALSE) { printf("%s\n",CkPrivateKey_lastErrorText(privKey)); CkCert_Dispose(cert); CkBinData_Dispose(bdKey); CkPrivateKey_Dispose(privKey); return; } success = CkCert_SetPrivateKey(cert,privKey); if (success == FALSE) { printf("%s\n",CkCert_lastErrorText(cert)); CkCert_Dispose(cert); CkBinData_Dispose(bdKey); CkPrivateKey_Dispose(privKey); return; } http = CkHttp_Create(); success = CkHttp_SetSslClientCert(http,cert); if (success == FALSE) { printf("%s\n",CkHttp_lastErrorText(http)); CkCert_Dispose(cert); CkBinData_Dispose(bdKey); CkPrivateKey_Dispose(privKey); CkHttp_Dispose(http); return; } req = CkHttpRequest_Create(); CkHttpRequest_AddParam(req,"grant_type","client_credentials"); CkHttpRequest_AddParam(req,"client_id","TPP_test"); CkHttpRequest_AddParam(req,"scope","psd2:payment:sepa:write psd2:payment:sepa:read"); CkHttpRequest_putHttpVerb(req,"POST"); CkHttpRequest_putContentType(req,"application/x-www-form-urlencoded"); resp = CkHttpResponse_Create(); success = CkHttp_HttpReq(http,"https://auth-sandbox.connect.abnamro.com:8443/as/token.oauth2",req,resp); if (success == FALSE) { printf("%s\n",CkHttp_lastErrorText(http)); CkCert_Dispose(cert); CkBinData_Dispose(bdKey); CkPrivateKey_Dispose(privKey); CkHttp_Dispose(http); CkHttpRequest_Dispose(req); CkHttpResponse_Dispose(resp); return; } if (CkHttpResponse_getStatusCode(resp) != 200) { printf("%s\n",CkHttpResponse_bodyStr(resp)); CkCert_Dispose(cert); CkBinData_Dispose(bdKey); CkPrivateKey_Dispose(privKey); CkHttp_Dispose(http); CkHttpRequest_Dispose(req); CkHttpResponse_Dispose(resp); return; } // Get the JSON result: // {"access_token":"TIhycwl8rfrZPkXGw15mwldASAAK","token_type":"Bearer","expires_in":7200} json = CkJsonObject_Create(); CkJsonObject_Load(json,CkHttpResponse_bodyStr(resp)); printf("access_token: %s\n",CkJsonObject_stringOf(json,"access_token")); printf("token_type: %s\n",CkJsonObject_stringOf(json,"token_type")); printf("expires_in: %s\n",CkJsonObject_stringOf(json,"expires_in")); CkCert_Dispose(cert); CkBinData_Dispose(bdKey); CkPrivateKey_Dispose(privKey); CkHttp_Dispose(http); CkHttpRequest_Dispose(req); CkHttpResponse_Dispose(resp); CkJsonObject_Dispose(json); } | ||||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.