Histórico de mensagens sobre url

EXIBINDO CONVERSAS RECENTES:

Texto: url
# devs
Avatar discord do usuario igor_efi

igor_efi

O risco seria que qualquer pessoa poderá realizar requisições em sua URL, porem existem maneiras de você tratar isso também.
Recomendo que você de uma olhadinha em nossa documentação: https://dev.efipay.com.br/docs/api-pix/webhooks
Dentro desta pagina falamos mais sobre o Skip-mTLS e também sobre o hmac

# devs
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Perfeito, neste caso então você conseguiria cadastrar uma URL para receber as notificações.
As nossas notificações são realizadas através do metodo POST.

# devs
Avatar discord do usuario capitaoredhawk

capitaoredhawk

A autenticação de TLS mútuo não está configurada na URL informada

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @buenolitz! Tudo bem? Com quais dúvidas você ficou?
Basicamente, você precisa ter uma URL pública para receber as notificações do Pix. E no servidor web da sua aplicação, é necessário configurar o mTLS para que a comunicação siga o padrão de segurança.

# devs
Avatar discord do usuario clickplattop

clickplattop

Já validei URL, para mim esa correta, mesmo pq o erro é de token.

# pix
Avatar discord do usuario admthunder

admthunder

Em vez de redirecionar pro "linkVisualizacao", recireciono pra alguma url minha mesmo e mostro a imagem do pix lá

# devs
Avatar discord do usuario otherpaulo

otherpaulo

só funcionou quando passei a url de forma direta

# bolix
Avatar discord do usuario marcelo_efi

marcelo_efi

Ver Respostas

Se você já possuí o https configurado, basta cadastrar a URL com https, a API aceita os dois formatos

# bolix
Avatar discord do usuario deson00

deson00

Ver Respostas

Parece que o problema esta no http, nao é aceito http para url de notificaçoes ?

# bolix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Verifique então no histórico de notificações no painel da aplicação se a URL definida na cobrança está correta, e se há algum parâmetro em falta que possa estar impedindo a validação na sua aplicação.

# bolix
Avatar discord do usuario deson00

deson00

Ver Respostas

Percebi um erro no meu teste que no postman eu estava enviando por get usando x-www-form-urlencoded no entanto ao mudar para POST fucionou a notificação no postman

# bolix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Acontece que nossa API enviará o parâmetro sempre com POST.
Você selecionou o tipo de body como x-www-form-urlencoded?

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Compreendo, @alissonmaciel_32335. Sempre é bom receber feedback.
Acredito que esta dificuldade esteja relacionada às regras estabelecidas pelo Banco Central que devem ser seguidas na API Pix, especialmente com relação à configuração do mTLS e à adição do /pix no final da URL.
No entanto, uma vez configurado corretamente, têm-se o benefício da notificação instantânea e da segurança.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

@rian2965, atualmente não está sendo listado mesmo os registros de notificações no painel da aplicação. Neste caso, sugiro verificar nos logs do seu servidor HTTP.
Você registrou uma webhhok URL no endpoint PUT /v2/webhook/:chave?

# bolix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Crie uma requisição no Postman, por exemplo, e simule o envio de uma notificação para sua URL passando um token de uma cobrança para verificar qual será o retorno da sua aplicação.
imagem enviada na mensagem pelo usuario guilherme_efi

# devs
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Boa tarde @otherpaulo ! Nesse caso, você precisa salvar a url nessa variável. Você criou um enviroment e criou essa variável com o valor sendo a url?

# devs
Avatar discord do usuario otherpaulo

otherpaulo

só consigo fazer a requição passando a url direta, seja em produção ou homologação

# pix
Avatar discord do usuario alissonmaciel_32335

alissonmaciel_32335

E na minha requisição pra criar o webhook, ainda estou recebendo essa mensagem de erro:
string(102) "{"nome":"webhook_invalido","mensagem":"A requisição na URL informada falhou com o erro: ECONNRESET"}"

# devs
Avatar discord do usuario yasmin_efi

yasmin_efi

Isso mesmo @otavio.rigue, apenas a URL de notificação será suficiente para receber as baixas no seu sistema, após as cobranças registradas por aí

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Ok, no $body insira o ?ignorar=
$body = '{
"webhookUrl": "https://julioerp.agenciaweblab.com.br/webhook.php?ignorar="
}';

E no arquivo "/webhook.php" inseira o exemplo de código abaixo:

php

function resposta($status, $mensagem, $dados)
{
$resposta['status'] = $status;
$resposta['mensagem'] = $mensagem;
$resposta['dados'] = $dados;
$json_resposta = '
' . json_encode($resposta, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

header("HTTP/1.1 " . $status);
echo $json_resposta;
}

function salvar($dados)
{
// Crie um arquivo .;json para salvar as informações
$nomeArquivo = './dados.json';
$dadosGravados = json_decode(file_get_contents($nomeArquivo), true);
$arquivo = fopen($nomeArquivo, 'w');

// Incrementa as informações enviadas com o que já havia gravado
array_push($dadosGravados, $dados);

if (fwrite($arquivo, json_encode($dadosGravados))) {
resposta(200, "Requisição realizada com sucesso!", $dados);
} else {
resposta(300, "Falha ao salvar os dados da requisição.", $dados);
}

fclose($arquivo);
}

function requisicao($metodo, $body, $parametros)
{
switch ($metodo) {
case 'POST':
salvar($body);
break;
case 'GET':
resposta(200, "Requisição realizada com sucesso!", $body);
break;
}
}

// Obtém o método HTTP, body e parâmetros da requisição
$metodo = $_SERVER['REQUEST_METHOD'];
$parametros = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$body = json_decode(file_get_contents('php://input'), true);

try {
requisicao($metodo, $body, $parametros);
} catch (Exception $e) {
resposta(400, $e->getMessage(), $e);
}

A fim de teste, neste exemplo está salvando o json recebido em um arquivo dados.json. Então na mesma raiz crie-o com permissão de leitura e escrita. E escreva dentro do arquivo dados.json assim: [] para iniciar o json. Então simule um pagamento para receber a notificação.
Depois dos testes, pode manipular o json e gravar em um banco de dados.