Sample code for 30+ languages & platforms
Perl

Send POST to Bradesco Platform with Billing Ticket for Registration

See more HTTP Misc Examples

Sends a POST request to the Bradesco platform containing the JSON data of the Billing Ticket for registration.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

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

# First build the JSON containing the data to be sent.

# {
# "nuCPFCNPJ":"12668",
# "filialCPFCNPJ":"1",
# "ctrlCPFCNPJ":"59",
# "cdTipoAcesso":"2",
# "idProduto":"9",
# "nuNegociacao":"262200000000005577",
# "nuCliente":"SEU_NUM_CLIENTE",
# "dtEmissaoTitulo":"21.09.2016",
# "dtVencimentoTitulo":"21.09.2016",
# "vlNominalTitulo":"888888",
# "cdEspecieTitulo":"2",
# "nomePagador":"NOME DO PAGADOR",
# "logradouroPagador":"ENDERECO DO PAGADOR",
# "nuLogradouroPagador":"1145",
# "complementoLogradouroPagador":"APTO 34",
# "cepPagador":"5588",
# "complementoCepPagador":"1",
# "bairroPagador":"BAIRRO PAGADOR",
# "municipioPagador":"MUNICIPIO PAGADOR",
# "ufPagador":"SP",
# "cdIndCpfcnpjPagador":"2",
# "nuCpfcnpjPagador":"12668000159",
# "endEletronicoPagador":"PAGADOR@BRADESCO.COM.BR",
# "nomeSacadorAvalista":"NOME SACADOR AVALISTA",
# "logradouroSacadorAvalista":"ENDERECO SACADOR AVALISTA",
# "nuLogradouroSacadorAvalista":"5555",
# "complementoLogradouroSacadorAvalista":"BLOCO 23",
# "cepSacadorAvalista":"6182",
# "complementoCepSacadorAvalista":"160",
# "bairroSacadorAvalista":"BAIRRO SACADOR AVALISTA",
# "municipioSacadorAvalista":"MUNICIPIO SACADOR AVALISTA",
# "ufSacadorAvalista":"SP",
# "cdIndCpfcnpjSacadorAvalista":"2",
# "nuCpfcnpjSacadorAvalista":"12668000159",
# "endEletronicoSacadorAvalista":"SACADOR@BRADESCO.COM.BR",
# }
# 

$json = chilkat::CkJsonObject->new();
$json->UpdateString("nuCPFCNPJ","12668");
$json->UpdateString("filialCPFCNPJ","1");
$json->UpdateString("ctrlCPFCNPJ","59");
$json->UpdateString("cdTipoAcesso","2");
$json->UpdateString("idProduto","9");
$json->UpdateString("nuNegociacao","262200000000005577");
$json->UpdateString("nuCliente","SEU_NUM_CLIENTE");
$json->UpdateString("dtEmissaoTitulo","21.09.2016");
$json->UpdateString("dtVencimentoTitulo","21.09.2016");
$json->UpdateString("vlNominalTitulo","888888");
$json->UpdateString("cdEspecieTitulo","2");
$json->UpdateString("nomePagador","NOME DO PAGADOR");
$json->UpdateString("logradouroPagador","ENDERECO DO PAGADOR");
$json->UpdateString("nuLogradouroPagador","1145");
$json->UpdateString("complementoLogradouroPagador","APTO 34");
$json->UpdateString("cepPagador","5588");
$json->UpdateString("complementoCepPagador","1");
$json->UpdateString("bairroPagador","BAIRRO PAGADOR");
$json->UpdateString("municipioPagador","MUNICIPIO PAGADOR");
$json->UpdateString("ufPagador","SP");
$json->UpdateString("cdIndCpfcnpjPagador","2");
$json->UpdateString("nuCpfcnpjPagador","12668000159");
$json->UpdateString("endEletronicoPagador",'PAGADOR@BRADESCO.COM.BR');
$json->UpdateString("nomeSacadorAvalista","NOME SACADOR AVALISTA");
$json->UpdateString("logradouroSacadorAvalista","ENDERECO SACADOR AVALISTA");
$json->UpdateString("nuLogradouroSacadorAvalista","5555");
$json->UpdateString("complementoLogradouroSacadorAvalista","BLOCO 23");
$json->UpdateString("cepSacadorAvalista","6182");
$json->UpdateString("complementoCepSacadorAvalista","160");
$json->UpdateString("bairroSacadorAvalista","BAIRRO SACADOR AVALISTA");
$json->UpdateString("municipioSacadorAvalista","MUNICIPIO SACADOR AVALISTA");
$json->UpdateString("ufSacadorAvalista","SP");
$json->UpdateString("cdIndCpfcnpjSacadorAvalista","2");
$json->UpdateString("nuCpfcnpjSacadorAvalista","12668000159");
$json->UpdateString("endEletronicoSacadorAvalista",'SACADOR@BRADESCO.COM.BR');

# Load out PFX file 
$cert = chilkat::CkCert->new();
$success = $cert->LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123");
if ($success == 0) {
    print $cert->lastErrorText() . "\r\n";
    exit;
}

$crypt = chilkat::CkCrypt2->new();
$success = $crypt->SetSigningCert($cert);
if ($success == 0) {
    print $crypt->lastErrorText() . "\r\n";
    exit;
}

# Use SHA-256 within the signing..
$crypt->put_HashAlgorithm("sha256");

# Use no authenticated attributes
$crypt->put_SigningAttributes("{}");

$json->put_EmitCompact(1);
$sigBase64 = $crypt->opaqueSignStringENC($json->emit());
if ($crypt->get_LastMethodSuccess() == 0) {
    print $crypt->lastErrorText() . "\r\n";
    exit;
}

# Next, we need to send a POST to the following URL where the body of the POST
# contains the binary PKCS7 signature (which embeds the JSON).
$url = "https://cobranca.bradesconetempresa.b.br/ibpjregistrotitulows/registrotitulohomologacao";

$req = chilkat::CkHttpRequest->new();
$req->put_HttpVerb("POST");
# This is strange because apparently the server wants a "text/xml" Content-Type,
# but the content in the body is not actually XML, it's binary PKCS7.
$req->put_ContentType("text/xml");
$req->LoadBodyFromString($sigBase64,"utf-8");

# We don't actually pass the URL, we set the path here, and the domain is passed below..
$req->put_Path("/ibpjregistrotitulows/registrotitulohomologacao");

$http = chilkat::CkHttp->new();
$resp = chilkat::CkHttpResponse->new();
$success = $http->HttpSReq("cobranca.bradesconetempresa.b.br",443,1,$req,$resp);
if ($success == 0) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

print "Response status code: " . $resp->get_StatusCode() . "\r\n";
print "Response body:" . "\r\n";
print $resp->bodyStr() . "\r\n";