Histórico de mensagens sobre webhook pix em pix

EXIBINDO CONVERSAS RECENTES:

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

rubenskuhl

Dito isso, o melhor é usar o webhook complementado por um GET em /pix de baixa frequência, só para os casos de ter perdido o webhook. As outras duas você vai ficar batendo no endpoint toda hora e pode exceder o limite da API.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Tem 3 jeitos de confirmar uma transação:
1) Webhook
2) GET em /cob/:txid, ver se tem um objeto pix na cobrança
3) Get em /pix/?inicio=fim=txid= , se vier algum objeto pix

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Pior que quando eles podiam usar isso para extender o webhook para o Pix Automático, parece que eles não vão fazer isso e colocar um webhook à parte.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Em cada cliente você vai ter que fazer PUT no /webhook/:chave apontando para seu webhook. Pode ser a mesma URL, e você trata quem é quem pela chave Pix.

Avatar discord do usuario hiagosilvas

hiagosilvas

Cada cliente seu possui uma conta Efí, sua solução é integrada para a conta de cada cliente. Você precisa configurar o webhook do PIX para cada conta Efí de cada cliente seu. É isso?

Avatar discord do usuario ranulfosouza

ranulfosouza

Ver Respostas

boa tarde, Allan.
você pode me descrever como vc resolveu esse problema de api key usando o hmac indicado pelo @joaolucas_efi ?

a minha chamada ao métado de configuração webhook ficou assim:

Parse.Cloud.define("config-webhook", async (req) => {


let body = {

"webhookUrl": "https://api2.shopchafe.com/prod/webhook" //prod

}

let params = {
chave: options.chave_pix,

}

try {


const response = await gerencianet.pixConfigWebhook(params, body)

return response;
} catch (e) {
console.error("--> Erro ao configurar pixConfigWebhook", e);
throw e;
}


});


so que minha api exige um header com o nome x-api-key como parâmetro, como devo configurar esse métado para passar esse header obrigatório ?
Desde já agradeço

Avatar discord do usuario m.h1604

m.h1604

Ver Respostas

Vou mostrar como estou fazendo.

Parâmetros passados para criação do webhook:

$this->options["headers"] = [
"x-skip-mtls-checking" => "true",
];

$params = [
"chave" => $this->pix_key
];

$body = [
"webhookUrl" => "https://contratos.onlinedobrasil.com/webhook?ignorar="
];

Rota que está recebendo as notificações:
Routes::map('/webhook', function() {
if (isset($_POST)):
file_put_contents(__DIR__ . "/request.json", json_encode($_POST));
endif;

wp_send_json(200);
});

Estou salvando em um arquivo teste para ver o retorno das notificações, mas a única coisa que é gravado é um json vazio.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Os callbacks são enviados pela Efí via POST para url-webhook-cadastrada​/pix. Você deve capturar as iinformação passadar em json.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @m.h1604. Tudo bem?
Caso opte por deixar o x-skip-mtls-checking como true __a Efí vai continuar a enviar o certificado na requisição__, mas como descrito, seu servidor irá ignorá-lo. No entanto é aconselhável que você encontre uma forma de configurar o mTLS e validar se é a Efí quem está enviando a notificação.
Uma outra sugestão é verificar o IP de quem está notificando, pois a Efí comunica os webhook através do IP 34.193.116.226

Para facilitar a tratativa da adição do /pix quando a Efí envia a notificação, você pode registrar a URL com um parâmetro. Exemplo: https://seudominio.com.br/webhook/?ignorar=. Assim sua aplicação receberá as notificações sempre na rota /webhook.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se você precisa testar o endpoint de envio de Pix, temos um ambiente funcional de homologação onde é possível simular todos os status retornados pela nossa API e pelo webhook.

Se o valor do Pix está entre R$ 0.01 à R$ 10.00:
Pix é confirmado, informação virá via Webhook.
Se o valor do Pix está entre R$ 10.01 à R$ 20.00:
Pix é rejeitado, informação virá via Webhook
Se o valor do Pix é acima de R$ 20.00:
Pix é rejeitado já na requisição, informação não virá via Webhook.
Os pagamentos enviados com valor de R$ 4,00 irão gerar duas devoluções recebidas no valor de R$ 2,00.
Os pagamentos enviados com valor de R$ 5,00 irão gerar uma devolução recebida no valor de R$ 5,00.
Os pagamentos enviados via chave só serão confirmados ou rejeitados se for utilizada a chave de homologação: [email protected]. Caso contrário, um erro de chave inválida será informado.
Os pagamentos enviados via dados bancários não sofrem alterações.

Avatar discord do usuario matheusgomes9492

matheusgomes9492

Entendi, já que todos que recebo pelo webhook já estão pagos...
Vou fazer um get dos que não estão pagos com mais de 30 minutos de criação, até pq esse é o tempo maxímo de validade do pix

Avatar discord do usuario rubenskuhl

rubenskuhl

Tem 3 jeitos de saber que a cobrança foi paga:
- Receber um webhook com objeto pix para esse txid
- GET de /cob/:txid, se tiver na cobrança um objeto pix, foi paga
- GET de /pix/?inicio=fim=txid=, se tiver um objeto na resposta, foi paga

Avatar discord do usuario rubenskuhl

rubenskuhl

Vale dar uma olhada no error.log do Apache para ver quando foram feitas essas chamadas em /webhook/pix , que erro deu e pq.

Avatar discord do usuario rubenskuhl

rubenskuhl

Inclusive é por causa disso que no exemplo de configuração de Apache tem estas linhas:

# Tratando o /pix, redirecionando as requisições sempre para /webhook
Alias "/webhook/pix/" "/var/www/webhook/index.php"
Alias "/webhook/pix" "/var/www/webhook/index.php"

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O teste do webhook é feito na URL que você passa, mas a notificação de Pix é feita nessa URL mais "/pix".

Avatar discord do usuario matheusgomes9492

matheusgomes9492

Ver Respostas

Não recebo no meu webhook o retorno do pix

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas


:443> # Porta HTTPS
#
# ...
#

SSLCertificateFile /caminho_certificado/fullchain_ssl.pem #fullchain associado ao seu certificado SSL do domínio
SSLCertificateKeyFile /caminho_certificado/privkey_ssl.pem #privkey associada ao seu certificado SSL do domínio

#Chave pública da Efí
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

# mTLS Efí
SSLVerifyClient none
SSLProtocol TLSv1.2


SSLVerifyClient require
SSLVerifyDepth 3


# Tratando o /pix, redirecionando as requisições sempre para /webhook
Alias "/webhook/pix/" "/var/www/webhook/index.php"
Alias "/webhook/pix" "/var/www/webhook/index.php"

#
# ...
#

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Você tem uma rota para o webhook Pix (ex: exemplo.com.br/webhookpix) ou um sub-domínio (ex: webhookpix.exemplo.com.br) ?