a unica notificação que recebo é
2024-03-28 21:11:17,712 - root - INFO - Webhook PIX recebido: {'evento': 'teste_webhook', 'data_criacao': '2024-03-28T20:11:17.434Z'}
Termos mais procurados:
Termos mais procurados:
a unica notificação que recebo é
2024-03-28 21:11:17,712 - root - INFO - Webhook PIX recebido: {'evento': 'teste_webhook', 'data_criacao': '2024-03-28T20:11:17.434Z'}
{
"pix": {
"receberSemChave": true,
"chaves": {
"222e85ae-e16a-4962-9e56-45a072df3339": {
"recebimento": {
"txidObrigatorio": false,
"qrCodeEstatico": {
"recusarTodos": false
},
"webhook": {
"notificacao": {
"tarifa": true,
"pagador": true
},
"notificar": {
"pixSemTxid": true
}
}
},
"envio": {
"webhook": {
"notificacao": {
"tarifa": true,
"favorecido": true
}
}
}
}
}
}
}
dessa forma era para receber as notificações no caso certo?
o @rubenskuhl cara eu não acho o erro
server {
server_name webhook.redebrasilrp.com.br;
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/webhook.redebrasilrp.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/webhook.redebrasilrp.com.br/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_client_certificate /var/www/html/backend/webhookpix/public_key/chain-pix-sandbox.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
location / {
proxy_pass http://127.0.0.1:8082;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass http://127.0.0.1:8082; # Alterado para a mesma configuração de proxy_pass na localização padrão
}
}
server {
if ($host = webhook.redebrasilrp.com.br) {
return 301 https://$host$request_uri;
}
server_name webhook.redebrasilrp.com.br;
listen 80;
return 404;
}
so temnho o log de acesso
34.193.116.226 - - [28/Mar/2024:17:00:01 -0300] "POST /webhook/pix HTTP/1.1" 400 224 "-" "API Pix Efi (homologacao)"
@Efí ola , eu presiso de uma orientação de configuração do nginx e nodejs para webhook pix
Boa tarde, @cachorro_05667!
Em nossa documentação da API Pix falamos sobre o webhook, segue o link: https://dev.efipay.com.br/docs/api-pix/webhooks
Bom dia Igor.
Não consegui pegar o txid, tentei de várias formas. Como disse anteriormente, não tenho conhecimentos em array e por esse motivo, tentei das seguintes maneiras:
//////////////////////
$json = '[
{
"pix":[
{"endToEndId":"EEEEEEEEEEEEEEEEEEEEEEEEEEE","txid":"444444444444444444444444444444444","chave":"00000000-0000000-00008-000-0000000","valor":"0.01","horario":"2024-03-26T20:51:56.000Z"}
]}
]';
$data = json_decode($json); // aqui seria o retorno do "$dados"
foreach($data as $item) {
echo $item->pix[0]->txid;
}
//////////////////////
Essa deu certo, mas quando coloco no arquivo de "index.php" dentro da função "salvar($dados)" do webhook, dá erros.
Tentei também todas alternativas abaixo e sem sucesso:
//////////////////////
//$data = json_decode($dados);
//$dd = $data->pix->txid;
//$conteudo = json_encode($dados).' ---- '.json_encode($dados['pix']['txid']).' ----- '.$dados['pix']['txid'].' ---- '.$dados->pix[0]->txid;
//$conteudo = json_encode($dados->pix[0]->txid).' ----- '.$dd.' ----- '.json_encode($dd).' ---- '.json_encode($dd->pix[0]->txid);
//////////////////////
Se puder me ajudar fico muito grato.
Olá estou com dificuldade no retorno de um webhook,consegui cadastrar com sucesso o webhook, configurei o proxy_pass do nginx para o retorno correto "dominio/webhook(/pix)?" sendo que sempre que utilizo o dominio retorna um código 403 Forbiden, porém nos logs quando eu efetuo o pagamento constam as informações do pix realizado, me ajudem a ter o retorno correto diretamente no meu webhook cadastrado.
Como faço para pegar somente o txid da resposta do webhook no arquivo index.php?
Preciso gravar somente o txid antes de gravar no json.
Tentei "$txid = $dados.pix[0].txid;" mas não consegui porque não entendo de array.
Olá, tudo bem ? Ao configurar o webhook, estou recebendo o seguinte erro
{
nome: 'json_invalido',
mensagem: 'Valores ou tipos de campo inválidos',
erros: [
{
chave: 'additionalProperties',
caminho: '.body',
mensagem: 'não são permitidas propriedades adicionais'
}
]
}
{
webhookUrl: 'https://application.cardi.digital/str/order/sales/pix/webhook/'
}
Olá! Bom dia! Como consigo configurar o meu webhook com uma URL em localhost, segue a tentativa de configuração: await reqEfi.put(/v2/webhook/${dataCob.chave}, {
"webhookUrl": "https://localhost:3000/api/webhooks/pix-notification/transfer-received"
})
Boa tarde @cacadordecorno, tudo bem?
Os certificados em questão são referentes ao SSL do seu domínio.
Para configurar o webhook Pix é preciso de um servidor acessível pela internet e configurado com SSL.
Boa tarde. Estou tentando configurar o webhook no meu servidor porém estou recebendo 401. Estes são meus códigos :
A URL que você passa para o webhook é adicionado um /pix no final. Então se vc passar exemplo.com.br, vai ficar exemplo.com.br/pix
Tentei configurar o webhook, porém não recebi a requisição na url designada. É preciso apenas configurar o webhook com o pixConfigWebhook?
Oi, @r_a_g_. Não precisa necessariamente fazer a configuração do Alias no Apache. Ela serve para fazer a tratativa da adição do /pix na URL quando é enviada a notificação.
Mas você pode registrar a sua webhook URL com query param ?ignorar=. Ou seja, na request PUT /v2/webhook/:chave para cadastrar o webhook, você irá passar o body com sua URL, exemplo:
Então, mas este caso elimina a necessidade do mTLS, mas não elimina a necessidade de se ter um webhook configurado, em uma determinada url, (seu_dominio/webhook/) me parece que eliminou apenas a parte da verificação dos certificdos.
Se tem que ter webhook no dominio, é necessário pelo menos fazer no apache o alias, direcionando as chamdas pix para dominio/webhook. Entendi errado?
Bom dia @zekramfn é possível sim.
Você precisa consumir o endpoint PUT /v2/gn/config passando o atributo pix.chaves.suaChave.webhook.notificacao.pagador = true, segue um exemplo onde essa configuração é aplicada:
Bom dia como faço para criar um webhook sem o TLS meu servidor é compartilhado: estou usando o exemplo: pixConfigWebhook.php ?