![]() |
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
(Perl) hacienda.go.cr Refrescar un TokenRefreshes an access token for the Recepción de Comprobantes Electrónicos del Ministerio de Hacienda (Costa Rica) Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://www.hacienda.go.cr/ATV/ComprobanteElectronico/docs/esquemas/2016/v4.3/Guia_IdP.pdf
use chilkat(); $success = 0; # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # It is assumed we previously obtained an OAuth2 access token. # This example loads the JSON access token file # saved by this example: Get hacienda.co.cr OAuth2 Access Token $jsonToken = chilkat::CkJsonObject->new(); $success = $jsonToken->LoadFile("qa_data/tokens/hacienda_cr.json"); if ($success != 1) { print "Failed to load constantContact.json" . "\r\n"; exit; } # The access token JSON looks like this: # { # "access_token": "ey....", # "expires_in": 300, # "id_token": "ey....", # "not-before-policy": 0, # "refresh_expires_in": 1800, # "refresh_token": "ey...", # "session_state": "...", # "token_type": "bearer" # } $http = chilkat::CkHttp->new(); # Implements the following CURL command: # curl -X "POST" "https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/token" \ # -H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" \ # --data-urlencode "client_id=api-stag" \ # --data-urlencode "refresh_token=ey..." \ # --data-urlencode "grant_type=refresh_token" # Use the following online tool to generate HTTP code from a CURL command # Convert a cURL Command to HTTP Source Code $req = chilkat::CkHttpRequest->new(); $req->put_HttpVerb("POST"); $req->put_Path("/auth/realms/rut-stag/protocol/openid-connect/token"); $req->put_ContentType("application/x-www-form-urlencoded"); $req->AddParam("client_id","api-stag"); $req->AddParam("refresh_token",$jsonToken->stringOf("refresh_token")); $req->AddParam("grant_type","refresh_token"); $resp = chilkat::CkHttpResponse->new(); $success = $http->HttpReq("https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/token",$req,$resp); if ($success == 0) { print $http->lastErrorText() . "\r\n"; exit; } $sbResponseBody = chilkat::CkStringBuilder->new(); $resp->GetBodySb($sbResponseBody); $jResp = chilkat::CkJsonObject->new(); $jResp->LoadSb($sbResponseBody); $jResp->put_EmitCompact(0); print "Response Body:" . "\r\n"; print $jResp->emit() . "\r\n"; $respStatusCode = $resp->get_StatusCode(); print "Response Status Code = " . $respStatusCode . "\r\n"; if ($respStatusCode >= 400) { print "Response Header:" . "\r\n"; print $resp->header() . "\r\n"; print "Failed." . "\r\n"; exit; } # Sample JSON response: # (Sample code for parsing the JSON response is shown below) # { # "access_token": "ey....", # "expires_in": 300, # "id_token": "ey....", # "not-before-policy": 0, # "refresh_expires_in": 1800, # "refresh_token": "ey...", # "session_state": "...", # "token_type": "bearer" # } # Sample code for parsing the JSON response... # Use the following online tool to generate parsing code from sample JSON: # Generate Parsing Code from JSON $access_token = $jResp->stringOf("access_token"); $expires_in = $jResp->IntOf("expires_in"); $id_token = $jResp->stringOf("id_token"); $not_before_policy = $jResp->IntOf("not-before-policy"); $refresh_expires_in = $jResp->IntOf("refresh_expires_in"); $refresh_token = $jResp->stringOf("refresh_token"); $session_state = $jResp->stringOf("session_state"); $token_type = $jResp->stringOf("token_type"); # Save the new JSON access token response to a file. $success = $jResp->WriteFile("qa_data/tokens/haciendda_cr.json"); |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.