Histórico de mensagens sobre webhook pix em pix

EXIBINDO CONVERSAS RECENTES:

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

guilherme_efi

Ver Respostas

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:

Assim, vocÊ vai tratar o json sempre no index.php localizado em /webhook.

Avatar discord do usuario r_a_g_

r_a_g_

Ver Respostas

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?
imagem enviada na mensagem pelo usuario r_a_g_
imagem enviada na mensagem pelo usuario r_a_g_

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

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:

{
"pix": {
"receberSemChave": true,
"chaves": {
"355e4568-e89b-1243-a456-006655440001": {
"recebimento": {
"txidObrigatorio": false,
"recusarTipoPessoa": "PF",
"qrCodeEstatico": {
"recusarTodos": false
},
"webhook": {
"notificacao": {
"tarifa": true,
"pagador": true
},
"notificar": {
"pixSemTxid": true
}
}
},
"envio": {
"webhook": {
"notificacao": {
"tarifa": true,
"favorecido": true
}
}
}
}
}
}
}

Avatar discord do usuario alexporfirio_84692

alexporfirio_84692

Bom dia como faço para criar um webhook sem o TLS meu servidor é compartilhado: estou usando o exemplo: pixConfigWebhook.php ?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Oi, @martins.dev. Bom dia! Tudo bem?
Para facilitar a tratativa da adição do /pix, você pode também registar seu webhook URL assim: https://seudominio.com.br/webhook/?ignorar=. Assim, quando enviarmos a notificação o /pix será passado como query param.

Avatar discord do usuario martins.dev

martins.dev

Ver Respostas

Alias "/webhook/pix/" "/var/www/webhook/index.php"
Alias "/webhook/pix" "/var/www/webhook/index.php"

Avatar discord do usuario martins.dev

martins.dev

Ver Respostas

Olá, estou de volta aqui, estou enfrentando um problema sobre a resposta que é enviado para o webhook. estou recendo esses seguinte status code

"POST /webhook//pix HTTP/1.1" 400 6595 "-" "Gerencianet"
"POST /webhook//pix HTTP/1.1" 300 6692 "-" "Gerencianet"
"POST /webhook//pix HTTP/1.1" 400 6594 "-" "Gerencianet"

assim que eu recebo os dados eu não sei como ele vem exatamente, eu fiz uma verificação isset($data["pix"]) tem o index pix para conseguir o txid para verificar quem pagou

Avatar discord do usuario rianoliveira

rianoliveira

A minha seguinte dúvida, é após a criação do Webhook e envio do PIX, eu não consigo mais acessar essas informações por rotas GET's?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

OI, @wesleysnap. Bom dia! Tudo bem?
Além do seu domínio ter um certificado SSL, é necessário fazer a configuração do mTLS em seu webserver para que ocorra a autenticação mútua.
https://dev.efipay.com.br/docs/api-pix/webhooks#entendendo-o-padrão-mtls

Outro detalhe, é a adição do /pix no final da sua URL quando a Efí envia a notificação.
Ou seja, na request PUT https://api-pix.gerencianet.com.br/v2/webhook/:chave para cadastrar o webhook, você irá passar o body com sua URL, exemplo:

No entanto, a URL será registrada com o /pix no final, assim: https://seudominio.com.br/webhook/pix.

Então esta adição do /pix também dever ser tratada nas configurações de seu servidor para que na rota /webhook/pix de seu servidor exija o certificado CA da Gerencianet e recebe o body a partir dela.

Outra opção seria você colocar um query params na sua URL no momento do registro, para ignorar a adição do /pix, assim:

Avatar discord do usuario andrebarbosa_dev

andrebarbosa_dev

Ver Respostas

voce fez a configuração no servidor que o webhook pede?

server {
#
# ...
#
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate server_ssl.crt.pem;
ssl_certificate_key server_ssl.key.pem;
ssl_client_certificate /root/chain-pix-webhooks-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
#
# ...
#
location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass /webhook;
}
}
#Desenvolvido pela Consultoria Técnica da Efí

Avatar discord do usuario eternoaprendiz5308

eternoaprendiz5308

Estou com um problema:

private async verificarPagamento(){
this.pixService.webhook.subscribe((events: PixInfo) => {
console.log('Evento:', events)
this.$cobranca?.subscribe(res => {
console.log('Cobranca:', res)
const txid = res.cobResponse.txid
console.log('txid:', txid)
events.pix.forEach(pix => {
console.log('PIX:', pix.txid)
if(pix.txid === txid){
console.log('O txid corresponde a cobrança')
}
})
})
})
}

os txid da cobrança não está sendo o mesmo que o txid que o pix está gerando.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Na API Pix o parâmetro é {
"webhookUrl": "https://exemplo-pix/webhook"
}

Avatar discord do usuario danilowiener

danilowiener

Ver Respostas

@guilherme_efi estou recebendo o retorno correto na minha url de notificação desta forma: id: {"status": "success", "message":"Webhook succeed"} mas percebi que não tá conseguindo pegar o id da transação pra eu fazer update no status do pix... sabe o que pode ser?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não pq o webhook sempre informa a chave Pix. Então basta que os clientes tenham chave Pix diferente.

Avatar discord do usuario guilherme_efi

guilherme_efi

Bom dia! Tudo bem?
Se você registrar a URL assim http://urldosite/notifications.php, ao acionar o webhook, será acrescentado um /pix na URL. Portanto, no seu caso, a notificação seria enviada para http://urldosite/notifications.php/pix.

Para solucionar isso, cadastre seu webhook URL com a query param ?ignorar=. Assim, quando o webhook for acionado, o /pix será tratado como um parâmetro e você receberá o JSON no arquivo notifications.php, conforme a seguinte URL: http://urldosite/notifications.php?ignorar=/pix.

Avatar discord do usuario matheuzin6375

matheuzin6375

Ver Respostas

Boa tarde.

codigo:

def configure_webhook():
url = "https://api-pix.gerencianet.com.br/v2/webhook/chave"
headers = {
"x-skip-mtls-checking": "true",
}

body = {
"webhookUrl": "https://ac7-1bd37c9a12e8.herokuapp.com/show/webhook?hmac={HASH_SECRET_KEY}&ignorar=",
"chave": "6831e783-a812-45c7-a98f-962745a78ad4"
}

response = requests.put(url, headers=headers, data=body)

return response

response = configure_webhook()

erro:

requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'Foi forçado o cancelamento de uma conexão existente pelo host remoto', None, 10054, None))

alguém consegue me explicar?

Avatar discord do usuario edvandell

edvandell

Ver Respostas

Olá, bom dia! Pessoal alguém poderia me ajudar, não estou mais recebendo o webhook das confirmações de pagamentos pix

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não. Você precisa criar duas rotas na sua aplicação, /webhook e /webhook/pix, que vão atender requisição POST. E o certificado é o que você usa na configuração do webserver para ter certeza que isso veio da Efí.