Bom dia grande mestre, estou com esse erro na integração da api o senhor pode me dizer o que eu estou fazendo de errado ?
Closed this issue · 7 comments
require_once "../vendor/autoload.php";
use ctodobom\APInterPHP\BancoInter;
use ctodobom\APInterPHP\BancoInterException;
use ctodobom\APInterPHP\Cobranca\Boleto;
use ctodobom\APInterPHP\Cobranca\Pagador;
// dados do correntista
$conta = "1111111111111";
$cnpj = "1111111111111111111";
$certificado = "certificado.crt";
$chavePrivada = "private-chave.pem";
// dados de teste
$cpfPagador = "12312312312";
$estadoPagador = "AM";
$banco = new BancoInter($conta, $certificado, $chavePrivada);
//$banco->setKeyPassword("");
echo'
';
print_r($banco);
echo '
';
// Se a chave privada estiver encriptada no disco
//$banco->setKeyPassword("");$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("12345000");$pagador->setCnpjCpf($cpfPagador);
$pagador->setUf($estadoPagador);$boleto = new Boleto();
$boleto->setCnpjCPFBeneficiario($cnpj);
$boleto->setPagador($pagador);
$boleto->setSeuNumero("123456");
$boleto->setDataEmissao(date('Y-m-d'));
$boleto->setValorNominal(100.10);
$boleto->setDataVencimento(date_add(new DateTime() , new DateInterval("P10D"))->format('Y-m-d'));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;
}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;
}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;
}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;
}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;
}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";
Todos os dados precisam ser válidos. Nesse script eu consigo dizer que o CPF não é válido. Sugestão usar seu próprio CPF ou CNPJ para evitar que apareça no DDA de alguém. Aconselho a usar CEP e estado válidos também.
Boa noite meu mestre !
Eu consegui obrigado mesmo, ele grava o pdf no temp como eu faço pra deslocar esse pdf para uma pasta no servidor?
\Download do PDF
Salvo PDF em /tmp/boleto-inter-p30rYR.pdf
O senhor pode me ajudar ?
É só usar as funções padrão do php para manipulação de arquivos. Nesse caso a funcao rename
deve resolver.
Bom dia, como voce chegou a gerar o .pem para colocar no inicio da classe?
@bhcosta90 o certificado é exatamente o arquivo que foi baixado do banco, a chave é o arquivo .key que você gerou, não precisa converter.
Executei esses passos
openssl req -new -newkey rsa:2048 -nodes -keyout seudominio.key -out seudominio.csrObservação: Substitua [seudominio] com o nome de domínio que quer proteger. Por exemplo: acme.com.br.
2. Nos campos solicitados, insira as informações:
Country Name (código do país): as duas letras que representam o país internacionalmente. Ex: BR é Brasil
State or Province Name (nome completo do estado): ex. São Paulo, Minas Gerais, Ceará.
Locality Name (nome completo da cidade): ex. São Paulo, Belo Horizonte, Fortaleza.
Organization Name (a razão social completa da sua empresa): ex. Banco Inter S.A.
Organizational Unit Name (número de aplicação): copie a chave exclusiva gerada pelo Inter e cole-a no campo. Este é o "Número de aplicação" e é formado por letras, números e separado por hífens.
Common Name (nome comum - campo opcional): o nome de domínio totalmente qualificado, ou URL que você deseja proteger. Exemplo: bancointer.com.br
E-mail Address (endereço de e-mail): insira seu e-mail
A Challenge Password (uma senha forte): crie uma senha forte para este SSL
Observação: Se você não quiser inserir uma senha para esse SSL, você pode deixar o campo "senha" em branco. Porém, lembre-se de que isso pode ser mais arriscado.
3. Abra a CSR em um editor de texto e copie todo o texto gerado.
4. Cole o texto gerado no campo "Assinatura do certificado (CSR)" e clique em "Confirmar".
No caso seria o arquivo seudominio.key
na variavel $chavePrivada
?