Api 2.0
Closed this issue · 2 comments
Olá Claudemir, estou tendo alguns problemas para implementar a api no meu sistema.
Este erro fica aparecendo:
Este é meu código:
boleto.blade.php:
`<?php
require_once "vendor/autoload.php";
use ctodobom\APInterPHP\BancoInter;
use ctodobom\APInterPHP\TokenRequest;
use ctodobom\APInterPHP\BancoInterException;
use ctodobom\APInterPHP\Cobranca\Boleto;
use ctodobom\APInterPHP\Cobranca\Pagador;
$dotenv = Dotenv\Dotenv::createImmutable(DIR);
$dotenv->load();
// dados do correntista
$conta = $ _ENV['INTER_CONTA' ;
$cnpj = $ _ENV['INTER_CNPJ'];
$certificado = $ _ENV['INTER_CERTIFICATE_PATH'];
$chavePrivada = $ _ENV['INTER_PRIVATE_KEY_PATH'];
// A T E N Ç Ã O
//
// Todos os dados verificáveis precisam ser válidos
// Utilize sempre CPF/CNPJ, CEP, Cidade e Estado válidos
// Para evitar importunar estranhos utilize seus próprios
// dados ou de alguma pessoa que esteja ciente, pois as
// cobranças sempre são cadastradas no sistema quente
// do banco central e aparecerão no DDA dos sacados.
//
// Os dados de exemplo NÃO SÃO VÁLIDOS e se não forem
// alterados o script de exemplo não funcionará.
// dados de teste
$cpfPagador = $ _ENV['PAGADOR_CPF'];
$estadoPagador = $ _ENV['PAGADOR_UF'];
$banco = new BancoInter($conta, $certificado,
// Se a chave privada estiver encriptada no disco
// $banco->setKeyPassword("senhadachave");
$pagador = new Pagador();
$pagador->setTipoPessoa(Pagador::PESSOA_FISICA);
$pagador->setNome("Nome de Teste");
$pagador->setEndereco("Nome da rua");
$pagador->setNumero(42);
$pagador->setBairro("Centro");
$pagador->setCidade("Cidade");
$pagador->setCnpjCpf($cpfPagador);
$pagador->setUf($estadoPagador);
$boleto = new Boleto();
$boleto->setPagador($pagador);
$boleto->setSeuNumero("123456");
$boleto->setValorNominal(100.10);
$boleto->setDataVencimento(date_add(new DateTime() , new DateInterval("P10D"))->format('Y-m-d'));
var_dump(json_decode(json_encode($boleto)));
try {
$banco->createBoleto($boleto);
echo "\nBoleto Criado\n";
echo "\n seuNumero: ".$boleto->getSeuNumero();
echo "\n nossoNumero: ".$boleto->getNossoNumero();
echo "\n codigoBarras: ".$boleto->getCodigoBarras();
echo "\n linhaDigitavel: ".$boleto->getLinhaDigitavel();
} catch ( BancoInterException $e ) {
echo "\n\n".$e->getMessage();
echo "\n\nCabeçalhos: \n";
echo $e->reply->header;
echo "\n\nConteúdo: \n";
echo $e->reply->body;
echo "\n\n".$e->getTraceAsString();
die;
}
try {
echo "\Download do PDF\n";
$pdf = $banco->getPdfBoleto($boleto->getNossoNumero());
echo "\n\nSalvo PDF em ".$pdf."\n";
} catch ( BancoInterException $e ) {
echo "\n\n".$e->getMessage();
echo "\n\nCabeçalhos: \n";
echo $e->reply->header;
echo "\n\nConteúdo: \n";
echo $e->reply->body;
echo "\n\n".$e->getTraceAsString();
}
try {
echo "\nConsultando boleto\n";
$boleto2 = $banco->getBoleto($boleto->getNossoNumero());
var_dump($boleto2);
} catch ( BancoInterException $e ) {
echo "\n\n".$e->getMessage();
echo "\n\nCabeçalhos: \n";
echo $e->reply->header;
echo "\n\nConteúdo: \n";
echo $e->reply->body;
echo "\n\n".$e->getTraceAsString();
}
try {
echo "\nBaixando boleto\n";
$banco->baixaBoleto($boleto->getNossoNumero(), INTER_BAIXA_DEVOLUCAO);
echo "Boleto Baixado";
} catch ( BancoInterException $e ) {
echo "\n\n".$e->getMessage();
echo "\n\nCabeçalhos: \n";
echo $e->reply->header;
echo "\n\nConteúdo: \n";
echo $e->reply->body;
echo "\n\n".$e->getTraceAsString();
}
try {
echo "\nConsultando boleto antigo\n";
$boleto2 = $banco->getBoleto("00571817313");
var_dump($boleto2);
} catch ( BancoInterException $e ) {
echo "\n\n".$e->getMessage();
echo "\n\nCabeçalhos: \n";
echo $e->reply->header;
echo "\n\nConteúdo: \n";
echo $e->reply->body;
echo "\n\n".$e->getTraceAsString();
}
try {
echo "\nListando boletos vencendo nos próximos 10 dias (apenas a primeira página)\n";
$listaBoletos = $banco->listaBoletos(date('Y-m-d'), date_add(new DateTime() , new DateInterval("P10D"))->format('Y-m-d'));
var_dump($listaBoletos);
} catch ( BancoInterException $e ) {
echo "\n\n".$e->getMessage();
echo "\n\nCabeçalhos: \n";
echo $e->reply->header;
echo "\n\nConteúdo: \n";
echo $e->reply->body;
}
echo "\n\n";`
.env:
`INTER_CONTA=""
INTER_CNPJ=""
INTER_CERTIFICATE_PATH="private/Inter API_Certificado.crt"
INTER_PRIVATE_KEY_PATH="private/Inter API_Chave.key"
INTER_CLIENT_ID=""
INTER_CLIENT_SECRET=""
PAGADOR_CPF=""
PAGADOR_UF=""
PAGADOR_CEP="**"`
Pelo que eu entendi o código no arquivo BancoInter.php não está encontrando o certificado e a chave que eu obtiver no internet banking.
Eu coloquei elas dentro da pasta private dentro da raiz da aplicação da api-inter.
Até o momento eu já tentei mudar a pasta de lugar para dentro da src, tirar os arquivos de dentro da pasta e deixar solto na raiz e na src, mudar o jeito como passo o caminho dentro do meu código partindo da raíz do meu projeto e não da raiz da api, também mudei a extensão do arquivo Inter Api_Certificado para (ctr, pem, ssl), porém sem sucesso.
Você saberia me informar onde eu devo está deixando esses arquivos e como eu referencio o caminho dentro do meu código?
Olá @MoisesFagundes
Como vai?
Line 38 in 2f3ac79
Conforme com o exemplo.php
e seus screenshots, realize o seguinte teste:
$banco = new BancoInter(
$conta,
'C:\xampp\htdocs\EmpireEvents2\vendor\ctodobom\api-inter\private\Inter API_Certificado.crt',
'C:\xampp\htdocs\EmpireEvents2\vendor\ctodobom\api-inter\private\Inter API_Chave.key'
);
🤔
Acontece algum resultado positivo?
o erro é de carga do certificado mesmo, possivelmente o caminho passado não está correto. O ideal é sempre passar o caminho completo, ou usar a constante DIR concatenado com o caminho. Consulte o resultado do caminho final inspecionando o que você está passando e conferindo com o caminho do arquivo no seu hd.