Histórico de mensagens sobre webhook em dúvidas

EXIBINDO CONVERSAS RECENTES:

Texto: webhook
Canal: dúvidas
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Boa tarde @andrealencar_14844 ! Aqui na Efí, é possível você emitir as cobranças, configurando um webhook e qualquer alteração de status dessa cobrança, será disparado uma notificação apra o seu sistema. Em nossa documentação, você encontra a descrição e exemplos de como essa notificação são disparadas.
Pix: https://dev.efipay.com.br/docs/api-pix/webhooks#recebendo-callbacks
Boleto/cartão/carnê/assinatura: https://dev.efipay.com.br/docs/api-cobrancas/notificacoes

Avatar discord do usuario andrealencar_14844

andrealencar_14844

Galera sou novo aqui, o Seja Efí tem alguma saída de dados via webhooks ?

queria enviar para a MAKE nome do cliente, telefone e o boleto dele, para dentro da make enviar esses dados na minha api de mensagem no WhatsApp, alguém sabe me dizer isso ?

Avatar discord do usuario guilherme_efi

guilherme_efi

@adilalima, como vai?
Na SDK o parâmetro 'x-skip-mtls-checking' deve ser passado no array 'headers'. Assim:

php
$webhook = EfiPay::getInstance([
'client_id' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_ID : CONF_EFI_CLIENT_ID,
'client_secret' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_SECRET : CONF_EFI_CLIENT_SECRET,
'certificate' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_PIX_CERTIFICATE : CONF_EFI_PIX_CERTIFICATE,
'headers' => ['x-skip-mtls-checking' => "true"],
]);

Avatar discord do usuario adilalima

adilalima

Opa, tudo ótimo e contigo?
Então, mesmo seguindo esse guia e fazendo (supostamente) igual acabo recebendo o mesmo erro de código 400 e de descrição "A autenticação de TLS mútuo não está configurada na URL informada":

public function config_webhook(array $data): void
{
$webhook = EfiPay::getInstance([
'client_id' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_ID : CONF_EFI_CLIENT_ID,
'client_secret' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_SECRET : CONF_EFI_CLIENT_SECRET,
'certificate' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_PIX_CERTIFICATE : CONF_EFI_PIX_CERTIFICATE,
'x-skip-mtls-checking' => "true",
]);

$webhook = $webhook->pixConfigWebhook(
['chave' => CONF_EFI_PIX_KEY],
['webhookUrl' => CONF_EFI_PIX_WEBHOOK_URL]
);

$this->call(code: 200)->back(['data' => $data, 'headers' => $this->headers, 'webhook' => $webhook]);
}

É um comportamento esperado?

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia @adilalima, tudo bem?
Dê uma olhada em nosso exemplo da SDK que mostra como enviar o atributo "x-skip-mtls-checking" na instância da classe EfiPay.

Avatar discord do usuario adilalima

adilalima

Ver Respostas

Bom dia, estou recebendo a seguinte resposta ao tentar configurar um webhook:

"webhook": {
"success": false,
"error": "webhook_invalido",
"code": 400,
"message": "A autenticação de TLS mútuo não está configurada na URL informada",
"errorDescription": "A autenticação de TLS mútuo não está configurada na URL informada"
}

Apesar de enviar a opção 'x-skip-mtls-checking' => true na instância de EfiPay em uma API PHP8.

Entendi algo errado? A utilização do mTLS não é uma opção, infelizmente.

Agradeço 🙂

Avatar discord do usuario douglasalves_27133

douglasalves_27133

Ver Respostas

No postman, gerei um token em homologação para deletar o webhookUrl de homologação.

Posteriormente efetuei uma nova solicitação de token produção, solicitei a criação da webhookUrl novamente, porém o token apresentou-se inválido.

Devo esperar expirar o token gerado em homologação?

Avatar discord do usuario douglasalves_27133

douglasalves_27133

No postman, gerei um token em homologação para deletar o webhookUrl de homologação.

Posteriormente efetuei uma nova solicitação de token produção, solicitei a criação da webhookUrl novamente, porém o token apresentou-se inválido.

Devo esperar expirar o token gerado em homologação?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @douglasalves_27133! Sim, você primeiro você consome o endpoint DELETE /v2/webhook/:chave para desvincular sua URL no ambiente de homologação.
Depois, você deve alterar a chave pública do mTLS nas configurações do seu servidor para a de produção. Em seguida, você deve usar o endpoint PUT /v2/webhook/:chave com a chave pública do mTLS de produção e associar sua URL ao ambiente de produção.

Avatar discord do usuario douglasalves_27133

douglasalves_27133

Ver Respostas

Quero continuar com a mesma rota, deleto a webhookUrl vinculado a HOMOLOGAÇÃO e cadastro novamente para PRODUÇÃO?

Ou somente troco os dados de homologação para produção... ?

Avatar discord do usuario douglasalves_27133

douglasalves_27133

Quero continuar com a mesma rota, deleto a webhookUrl vinculado a HOMOLOGAÇÃO e cadastro novamente para PRODUÇÃO?

Avatar discord do usuario douglasalves_27133

douglasalves_27133

Ver Respostas

Acabei de finalizar os testes com os pagamentos via Pix - homologação

É necessário criar outro webhook para produção?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não, no webhook de cobrança vem a chave do recebedor.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Você precisa lidar com eventuais repetições para garantir idempotência. Mas fora repetições fortuitas, um possível motivo para receber um webhook de um Pix depois do pagamento é você comandar devoluções. Mas ainda você pode anotar na tabela algo como "solicitei devolução", para então tratar o campo de devolução.

Avatar discord do usuario meliodas7010

meliodas7010

Ver Respostas

ah! certo. Essa parte de webhook esta um pouco confusa pra mim pois não consigo testar localmente.
Na documentação mostra o corpo da requisição pix, mas ainda estou um pouco confuso. Gostaria de saber se estou tendo o approach correto:
Eu gero a cobrança pix pro meu cliente e salvo no meu banco aquela cobrança como pendente usando o txid como identificador. No meu webhook eu recebo a requisição:

// Pix recebido
{
"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 que quer dizer que o pix com txid fc9a43k6ff384ryP5f41719 foi pago no valor de 0.01, então verifico aquela transação salva no meu banco e continuo minha logica a partir desse ponto. Esta correto?
Minha duvida é se eu vou receber outras requisições no meu webhook com o mesmo txid podendo assim fazer minha logica ser executada mais de uma vez

Avatar discord do usuario meliodas7010

meliodas7010

Ver Respostas

Se o valor da cobrança está entre R$ 0.01 à R$ 10.00:
A cobrança é confirmada, informação virá via Webhook.
Se o valor da cobrança é maior que R$ 10.00:
A cobrança permanece ativa, sem confirmação. Como não há webhook nesses casos, nada é feito.

estou um pouco confuso nessa parte
Não há webhooks para cobranças acima de R$10?
Isso significa que meu servidor deve solicitar o status diretamente na API?

Avatar discord do usuario douglasalves_27133

douglasalves_27133

Ver Respostas

Então estou com algum outro problema, não estou recebendo as notificações.

No momento de cadastrar o webhookUrl, o sistema valida a conexão?

Avatar discord do usuario joao_efi

joao_efi

@douglasalves_27133 boa tarde tudo bem?
- Se o valor da cobrança está entre R$ 0.01 à R$ 10.00:
A cobrança é confirmada, informação virá via Webhook.
- Se o valor da cobrança é maior que R$ 10.00:
A cobrança permanece ativa, sem confirmação. Como não há webhook nesses casos, nada é feito.

Avatar discord do usuario douglasalves_27133

douglasalves_27133

Ver Respostas

Conseguiu criar a webhookUrl

É possível testar a chegada de notificações utilizando os dados de homologação (Gerar QRcode e pagar )?

Avatar discord do usuario renelima.

renelima.

Ver Respostas

alguem do suporte pode me ajudar? Alterei um webhook para um ambiente de teste, cadastrei pelo postman, e deu certo. Porem ele nao recebe nada, e o código é o mesmo que já uso e funciona em outro webhook