Closed MoisesFagundes closed 2 years ago
Olá @MoisesFagundes
Como vai?
https://github.com/allgood/APInter-PHP/blob/2f3ac799e69541938ac5a77bdf77eefd8fd06cc2/exemplo.php#L38
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.
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, $chavePrivada, new TokenRequest($ _ENV['INTER_CLIENT_ID'], $ _ENV ['INTER_CLIENT_SECRET'], 'boleto-cobranca.read boleto-cobranca.write'));
// 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->setCep($ _ENV['PAGADOR_CEP']);
$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?