Sample code for 30+ languages & platforms
PHP ActiveX

Banco Inter OAuth2 Client Credentials

Generate an OAuth2 access token needed to consume the Inter APIs.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$http = new COM("Chilkat.Http");

// First load the certificate and private key, and set as the HTTP object's client certificate.
$cert = new COM("Chilkat.Cert");
$success = $cert->LoadFromFile('<nome arquivo certificado>.crt');
if ($success == 0) {
    print $cert->LastErrorText . "\n";
    exit;
}

$bdPrivKey = new COM("Chilkat.BinData");
$success = $bdPrivKey->LoadFile('<nome arquivo chave privada>.key');
if ($success == 0) {
    print 'Failed to load <nome' . "\n";
    exit;
}

$privKey = new COM("Chilkat.PrivateKey");
$success = $privKey->LoadAnyFormat($bdPrivKey,'');
if ($success == 0) {
    print $privKey->LastErrorText . "\n";
    exit;
}

$success = $cert->SetPrivateKey($privKey);
if ($success == 0) {
    print $cert->LastErrorText . "\n";
    exit;
}

$success = $http->SetSslClientCert($cert);
if ($success == 0) {
    print $http->LastErrorText . "\n";
    exit;
}

$req = new COM("Chilkat.HttpRequest");
$req->HttpVerb = 'POST';
$req->Path = '/oauth/v2/token';
$req->ContentType = 'application/x-www-form-urlencoded';
$req->AddParam('grant_type','client_credentials');
// Requested scopes in OAuth2 are typically SPACE separated.
$req->AddParam('scope','boleto-cobranca.read boleto-cobranca.write');
$req->AddHeader('accept','application/json');

$resp = new COM("Chilkat.HttpResponse");
$success = $http->HttpReq('https://cdpj.partners.bancointer.com.br/oauth/v2/token',$req,$resp);
if ($success == 0) {
    print $http->LastErrorText . "\n";
    exit;
}

$jResp = new COM("Chilkat.JsonObject");
$resp->GetBodyJson($jResp);
$jResp->EmitCompact = 0;

print 'Response Body:' . "\n";
print $jResp->emit() . "\n";

$respStatusCode = $resp->StatusCode;
print 'Response Status Code = ' . $respStatusCode . "\n";
if ($respStatusCode >= 400) {
    print 'Response Header:' . "\n";
    print $resp->Header . "\n";
    print 'Failed.' . "\n";
    exit;
}

$success = $jResp->WriteFile('qa_data/tokens/banco_inter_client_credentials.json');
if ($success == 0) {
    print 'Failed to save JSON access token file.' . "\n";
    exit;
}

print 'Success.' . "\n";

?>