Open bcboaventura opened 1 year ago
Sim, eu acabei de fazer aqui.
Você deve fazer uma chamada PUT para /cobranca/v2/boletos/webhook.
A classe BancoInter não tem um método controllerPut, então eu modifiquei o método controllerPost para enviar por PUT também (modifiquei a seguinte linha):
curl_setopt($this->curl, CURLOPT_CUSTOMREQUEST, 'PUT');
aí é só passar o webhookUrl no corpo da mensagem. Eu passei como json e aceitou.
Cadastrei a URL certinho, o registro consta lá, porém, não recebo nenhum retorno dos boletos pagos no webhook.
Eu ia comentar a mesma coisa, eu tenho o webhook configurado desde o dia 19 de dezembro e até agora nenhuma requisição recebida. E já recebemos pelo menos uns 20 boletos pagos.
Verifiquei que o banco Inter modificou a API do webhook dia 03 de novembro, parece que agora retorna vários boletos de uma vez só. Vou modificar no meu sistema para receber no novo formato, que eles mostram aqui:
Verifiquei que o banco Inter modificou a API do webhook dia 03 de novembro, parece que agora retorna vários boletos de uma vez só. Vou modificar no meu sistema para receber no novo formato, que eles mostram aqui:
Mas eu não estou recebendo absolutamente nada deles. Não chega nada.
O que você fez pra ajustar? pode me mandar/mostrar essas alterações?
Quanto faço a simulção, utilizando o postman, vai certinho.
estou mandando esse Body/RAW usando POST como exemplo: [ { "nossoNumero": "00788123885", "seuNumero": "12345", "motivoCancelamento":"ACERTOS", "situacao":"CANCELADO", "dataHoraSituacao":"2022-11-01", "valorNominal":"5.00", "codigoBarras":"123456789123456498765218946518971", "linhaDigitavel":"216546531561310256162156" } ]
e está recebendo certinho. (estou, por enquanto, apenas gerando um arquivo com o json.
Fiz algo bem simples:
//Captura o body do POST
$body = file_get_contents('php://input');
Log::i('webhook-inter', "Body: ".$body);
//Transforma o body em array
$data = json_decode($body, true);
if (JSON_ERROR_NONE !== json_last_error()) {
Log::i('webhook-inter', 'Erro JSON: '.json_last_error());
http_response_code(403); //403=formato invalido
}
$data === null ? array() : $data;
//Agora data é um vetor com vários boletos (mudança 03/11/2022)
//print_r($data);
foreach ($data as $boleto) {
Mas antes disso, por incrível que pareça, eu tive um problema que faltava a barra final no URL do meu webhook. O URL que eu informei era: https://meusite/webhook/inter e o certo seria https://meusite/webhook/inter/
Devido à falta dessa barra no final, o meu servidor redirecionava (301) para o endereço com barra, mas o servidor do Banco Inter não segue redirects, e a requisição deles ia pro limbo. Se estiver usando o postman, insomnia ou algo do tipo, coloque para não seguir redirects para fazer o debug correto.
Fiz algo bem simples:
//Captura o body do POST $body = file_get_contents('php://input'); Log::i('webhook-inter', "Body: ".$body); //Transforma o body em array $data = json_decode($body, true); if (JSON_ERROR_NONE !== json_last_error()) { Log::i('webhook-inter', 'Erro JSON: '.json_last_error()); http_response_code(403); //403=formato invalido } $data === null ? array() : $data; //Agora data é um vetor com vários boletos (mudança 03/11/2022) //print_r($data); foreach ($data as $boleto) {
Mas antes disso, por incrível que pareça, eu tive um problema que faltava a barra final no URL do meu webhook. O URL que eu informei era: https://meusite/webhook/inter e o certo seria https://meusite/webhook/inter/
Devido à falta dessa barra no final, o meu servidor redirecionava (301) para o endereço com barra, mas o servidor do Banco Inter não segue redirects, e a requisição deles ia pro limbo. Se estiver usando o postman, insomnia ou algo do tipo, coloque para não seguir redirects para fazer o debug correto.
Cara, acho é que estava com problema no Inter mesmo. Eu não fiz absolutamente nada e comecei a receber dados no webhook.
Criado Pull Request #48
Bom dia! Alguém sabe como configurar um Webhook em PHP para receber os callbacks de pagamento dos boletos? Não achei nada ainda e na documentação do Banco Inter só tem pra NODE.JS. Desde já, agradeço!