Histórico de mensagens sobre webhook pix em pix

EXIBINDO CONVERSAS RECENTES:

Texto: webhook pix
Canal: pix
Avatar discord do usuario pianaro

pianaro

Ver Respostas

Boa tarde, como consigo pegar uma flag que o pagamento do pix foi realizado, pois preciso disso para chamar uma função após o pagamento. Minha aplicação já está rodando em produção e o pix está tudo certo.

Aqui esta a rota de pagamento.
router.post("/payment", async (req: Request, res: Response) => {

const reqGN = await reqGNAlready;
const dataCob = {
calendario: {
expiracao: 3600,
},
valor: {
original: "0.10", //req.body.value,
},
chave: "b801ed6a-27ba-4927-a952-d44e2c8ab9cc",
solicitacaoPagador: "Informe o número ou identificador do pedido.",
};

const cobResponse = await reqGN.post("/v2/cob", dataCob);

const qrcodeResponse = await reqGN.get(
/v2/loc/${cobResponse.data.loc.id}/qrcode
);
res.send(qrcodeResponse.data);
});

Aqui está a do webhook:

router.post("/webhook(/pix)?", (req: Request, res: Response) => {
if (req.secure){
var body = req.body;
const filePath = __dirname + "/data.json";
fs.appendFile(filePath, JSON.stringify(body) + "\n", function (err) {
if (err) {
console.log(err);
} else {
res.status(200).end();
}
})
res.status(200).end();
}else{
res.status(401).end();
}
});

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Tem sim. Em qualquer das 3 formas, vem um objeto Pix e dentro dele o E2EID.

Por exemplo, no caso do webhook:

{
"pix": [
{
"endToEndId": "E1803615022211340s08793XPJ",
"txid": "fc9a43k6ff384ryP5f41719",
"chave": "2c3c7441-b91e-4982-3c25-6105581e18ae",
"valor": "0.01",
"horario": "2020-12-21T13:40:34.000Z",
"infoPagador": "pagando o pix"
}
]
}

É o endToEndId .

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O webhook do Pix não é informado por cobrança, mas por chave Pix. Você configura via /v2/webhook/:chave e depois qualquer Pix recebido para essa chave com txid aciona o webhook.

Avatar discord do usuario mcunha98

mcunha98

Ver Respostas

uma duvida, chamei POST : https://pix-h.api.efipay.com.br/v2/cob
mas havia colocado o metadata para a url de notificacao, tomei 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"}]}
"metadata": { "notification_url": "http:\/\/webhook.site.com.br" }

e vendo na doc, realmente nao da suporte para metadata, entao como fazer para ligar o webhook do pix via notification_url ?

Avatar discord do usuario hspatz

hspatz

Ver Respostas

Eu estou utilizando o SDK-PHP de voces.
Cadastrei o webhook como "https://meudominio.com.br/pixefi"
Recebo os eventos da criação no endereço acima

( [{"evento":"teste_webhook","data_criacao":"2024-03-30T11:20:39.415Z"}] ).

O "index.php" nesta pasta é o mesmo do site.

Abaixo deste diretório existe uma pasta "pix" onde o mesmo "index.php"rdt's lá. ( "meusite.com.br/pixefi/pix" )
AO criar um pagamento PIX em produção e o mesmo pago, não recebo nenhuma informação de retorno da EFI.
Foi colocadouma função que salva qualquer acesso a pasta, como exemplo fiz um acesso pelo Chrome "https://meudominio.com.br/pixefi/pix" e o resultado salvo foi.


Metodo: GET
Parametros: a:2:{i:0;s:6:"pixefi";i:1;s:3:"pix";}
Body: null


Segue o parte do script "index.php" onde salva qualquer acesso a pasta

===============================================================
// 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);


//
/
$nomeArquivo = 'dados/dados_recebidos.json';
$dadosJson = "\n Metodo: " .$metodo ."\n Parametros: " .serialize($parametros) ."\n" ."Body: " .json_encode($body) ."\n";
$arquivo = fopen($nomeArquivo, 'a');
fwrite($arquivo, $dadosJson);
fclose($arquivo);
//
/


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

Estou tentando gerar cobranças no modo homologação de R$ 0,01 e não recebo notificação no modo de homologação também.

Avatar discord do usuario lidiamariano

lidiamariano

Ver Respostas

Boa noite! Alguem pode me ajudar com o recebimento do Webhook? Eu já tenho o webhook funcionando e recebendo as notificações. Mas agora eu preciso pegar a reposta dessas notificações pelo lado do cliente, no frontend. Como eu posso fazer isso? Estou printando, na minha api, o req.body (notificação). E é printado isso (substitui os valores com xxxx): {
pix: [
{
endToEndId: 'xxxx,
txid: 'xxxx',
chave: 'xxxx,
valor: 'xxxx',
horario: '2024-03-30T01:23:19.000Z',
infoPagador: 'Cobrança.'
}
]
} Mas quero pegar essa resposta em uma página especifica com Next Js. Desde já, agradeço!!!!

Avatar discord do usuario ryzenbergsjc

ryzenbergsjc

deixa eu ver se compreendi
no cadastro do webhook eu coloquei {
"webhookUrl": "https://blablbabla/pix" class="link-msg">https://blablbabla/pix"
}

o certo seria https://blablbabla/

Avatar discord do usuario ryzenbergsjc

ryzenbergsjc

Ver Respostas

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'}

Avatar discord do usuario ryzenbergsjc

ryzenbergsjc

Ver Respostas

{
"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?

Avatar discord do usuario _alexandrehenrique

_alexandrehenrique

Ver Respostas

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;
}

Avatar discord do usuario _alexandrehenrique

_alexandrehenrique

Ver Respostas

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)"

Avatar discord do usuario _alexandrehenrique

_alexandrehenrique

@Efí ola , eu presiso de uma orientação de configuração do nginx e nodejs para webhook pix

Avatar discord do usuario wellinton1125

wellinton1125

Ver Respostas

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.

Avatar discord do usuario _porfirio

_porfirio

Ver Respostas

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/'
}

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

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.

Avatar discord do usuario kauan_bs

kauan_bs

Boa tarde. Estou tentando configurar o webhook no meu servidor porém estou recebendo 401. Estes são meus códigos :

js

const httpOptions = {
cert: fs.readFileSync("gd_bundle-g2-g1.crt"), // Certificado fullchain do dominio
key: fs.readFileSync("56092e4c5a31e0c5.crt"), // Chave privada do domínio
ca: fs.readFileSync("chain-pix-prod.crt"), // Certificado público da Efí
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Caso precise que os demais endpoints não rejeitem requisições sem mTLS, você pode alterar para false
};

app.post("/webhookEfi", (request, response) => {
if (request.socket.authorized) {
console.log("autorizado")
response.status(200).end();
} else {
console.log("não autorizado")
response.status(401).end();
}
});

app.post("/webhookEfiConfig", async (req, res) => {
try {
let body = {
webhookUrl: "{minhaurl}/webhookEfi",
};

let params = {
chave: "6e364195-3e3d-4ee5-8ca0-14db77d30593",
};

const efipay = new EfiPay(options);

await efipay.pixConfigWebhook(params, body);

// Se tudo correr bem, você pode enviar uma resposta de sucesso
res.status(200).send("Configuração do webhook concluída com sucesso!");
} catch (error) {
// Se ocorrer algum erro, você pode enviar uma resposta de erro e registrar o erro
console.error("Erro ao configurar o webhook:", error);
res.status(500).send("Ocorreu um erro ao configurar o webhook.");
}
});
Alguem sabe qual o motivo ?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

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

Avatar discord do usuario kauan_bs

kauan_bs

Ver Respostas

Tentei configurar o webhook, porém não recebi a requisição na url designada. É preciso apenas configurar o webhook com o pixConfigWebhook?