Histórico de mensagens sobre webhook pix

EXIBINDO CONVERSAS RECENTES:

Texto: webhook pix
# pagamento-contas
Avatar discord do usuario izaacfariamid1

izaacfariamid1

Ver Respostas

boa tarde pessoal. Tudo bem? Eu tenho uma confecção de uniformes esportivos e criei um link via Microsoft Forms para coletar informações de meus clientes para um pedido, após isso eu criei uma automação em Python que dispara mensagens para meus clientes com um código qrcode pix para cobrar referente ao pedido. Até aí tudo tá indo beleza. A dor de cabeça é depois conferir na planilha de excel nome por nome e comprovante por comprovante e ver quem pagou ou não. Tava pensando em algo feito no n8n, alguma coisa de webhook para integrar com uma aplicação da api pix do EFI. Alguém do banco poderia me ajudar quais seriam as caixas marcadas na API?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, para já receber o pagador no webhook sim. Mas o GET de /pix confirmando o CPF não precisa dessa mudança, caso você prefira dessa forma.

# pix
Avatar discord do usuario marshall0559

marshall0559

Ver Respostas

No caso a mudança eu faria aqui :

public function successful_webhook( $posted ) {
$pix = json_decode( $posted, true )['pix'];
// Percorre lista de notificações
$args = array(
'limit' => -1,
'orderby' => 'date',
'order' => 'DESC',
'meta_key' => '_gn_pix_txid',
'meta_compare' => '=',
'meta_value' => sanitize_text_field( $pix[0]['txid'] ),
);

// Busca pedidos
$orders = wc_get_orders( $args );

// Atualiza status
foreach ( $orders as $order ) {

if ( isset( $pix[0]['txid'] ) && $pix[0]['txid'] != '' && ( get_post_meta( $order->get_id(), '_gn_pix_txid', true ) == $pix[0]['txid'] ) ) {
add_post_meta( intval( $order->get_id() ), '_gn_pix_E2EID', $pix[0]['endToEndId'], true );

gn_log( $pix[0] );
if ( isset( $pix[0]['devolucoes'] ) && $pix[0]['devolucoes'][0]['status'] == 'DEVOLVIDO' ) {
$order->update_status( 'refund' );
} else {
$order->update_status( 'Paid' );
$order->payment_complete();
}
}
}

exit();
}

# dúvidas
Avatar discord do usuario cascaes_

cascaes_

Ver Respostas

Faz sentido essa lógica sobre corpo de callback do webhook:

Pix Devolvido: Se algum dos objetos dentro do array "pix" contém a chave "devolucoes", é uma devolução de Pix.
Pix Enviado: Se algum dos objetos dentro do array "pix" contém as chaves "tipo" e "status", então é um Pix enviado.
Pix Recebido: Se não se encaixar em nenhuma das condições anteriores, consideramos que seja um Pix recebido.

?

# pix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Ah sim, agora entendi a sua demanda.
Quando o seu cliente realizar o pagamento, vamos fazer um webhook para a sua URL (caso tenha cadastrado).
Quando você receber esta notificação, você pode executar a ação de redirecionamento do seu usuário.

Segue a página da nossa documentação que fala sobre webhook: https://dev.efipay.com.br/docs/api-pix/webhooks

# devs
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @wilianmaique, tudo bem?

Esses padrões de segurança são orientações do Bacen (Banco Central), no caso do envio de Pix via API é um recurso delicado que permite uma vazão de valor alta, não sendo justificada para uma PF, mas sim para uma PJ onde há registros de documentação que evidenciam o uso destes valores.
Com relação ao webhook, nossa API segue o manual de integração imposto pelo Bacen, que pede que a implementação do webhook seja feita desta forma, implementar de uma forma distinta dessa seria não seguir o manual de integração do Bacen quanto ao Pix, você pode conferir esse documento aqui.

Caso tenha alguma dúvida basta nos perguntar para que possamos lhe auxiliar da maneira mais assertiva possível.

# devs
Avatar discord do usuario wilianmaique

wilianmaique

eu vi sobre o webhook tmb, precisar cadastrar webook, acho 'paia' tmb, é mais dinamico na criação do pix informar a URL e pronto

# marketplace
Avatar discord do usuario tudocatolico

tudocatolico

Ver Respostas

Bom dia, os desenvolvedores indicanos me repotraram o seguinte: "Verificamos e descobrimos que o retorno de chamada do webhook não está sendo recebido após o processo de checkout. Você poderia confirmar se o webhook está configurado corretamente e ativo?" Você consegue verificar isso e me confirmar? pois no OpenCart 3 já revisei o certificado, a chave PIX, o client ID e a chave secreta, e está tudo certo.

# devs
Avatar discord do usuario alandias_00502

alandias_00502

Ver Respostas

Boa noite. Existe a possibilidade de criar um webhook para pagamentos igual há no PIX ou apenas inserindo notification_url em cada cobrança?

# bolix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia! Tudo bem?

As notificações de Pix são enviadas para a URL registrada com um /pix no final. Ou seja, se você registrou a URL https://seudominio.com.br/webhook/, a notificação será enviada para https://seudominio.com.br/webhook/pix. Então, você precisa tratar essa rota /webhook/pix na sua aplicação ou cadastrar a URL do webhook com um query param para ignorar a adição do /pix, assim: https://seudominio.com.br/webhook/?ignorar=
imagem enviada na mensagem pelo usuario guilherme_efi

# devs
Avatar discord do usuario guilherme_efi

guilherme_efi

Oi, @fe0068. Bom dia! Tudo bem?
A segunda requisição que é feita no cadastro do webhook é enviada para a URL que você está tentando registrar, adicionando /pix no final.

Ou seja, se você está registrando https://seudominio.com.br/notification/efipay, a segunda requisição será para https://seudominio.com.br/notification/efipay/pix, então é importante tratar isso também.

Outra opção é registrar com um query param, assim: https://seudominio.com.br/notification/efipay/?ignorar=, para ignorar o /pix no final.

# pix
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Não entendi. Você deve configurar seu servidor, depois cadastrar seu webhook através do endpoint PUT /v2/webhook/:chave. Em nossa documentação, você encontra todos os detalhes da configuração de servidor.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Para receber o status de um Pix, você pode registrar uma webhook URL e as atualizações.
Em nossa documentação disponibilizamos um código que é responsável para captura o JSON das notificações.
https://dev.efipay.com.br/docs/api-pix/webhooks#exemplos-de-configurações-de-servidor

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @vinicio254! Tudo bem?

Você pode usar o exemplo abaixo para registrar o webhook. Sobre a configuração do mTLS, você pode conferir este vídeo que ensina a configuração em servidor Apache.

php

$homolog = true; // false para produção

$config = [
"certificado" => realpath(__DIR__ . "/certificado.pem"), // certificado em .pem de produção ou homologação
"client_id" => "Client_Id",
"client_secret" => "Client_Secret"
];

$chavePix = "suachavepix";

$webhookUrl = "https://seudominio.com.br/webhook/hash=hashdeseguranca&ignorar="

$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? "https://pix-h.api.efipay.com.br/oauth/token" : "https://pix.api.efipay.com.br/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 8,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));
var_dump(curl_exec($curl));
$returnAuth = json_decode(curl_exec($curl), true);
$access_token = $returnAuth['access_token'];
curl_close($curl);


//Criação da cobrança
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? "https://pix-h.api.efipay.com.br/v2/webhook/$chavePix" : "https://pix.api.efipay.com.br/v2/webhook/$chavePix"
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => '{
"webhookUrl": $webhookUrl
}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $access_token",
"x-skip-mtls-checking: true",
"Content-Type: application/json"
),
));
$responsePix = json_decode(curl_exec($curl), true);
curl_close($curl);

echo '
' . json_encode($responsePix, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

# devs
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @weslly99, tudo bem?
1. Sim, o certificado faz referencia a conta, funcionando de forma semelhante a uma credencial.
2. Você deve ser capaz de distinguir quem esta recebendo a notificação, você pode fazer isso tendo URL distintas, usando apenas query params para distinguir, etc.
3. É importante garantir que os usuários terão acesso apenas ao que é devido à eles, ou seja, que não consigam influenciar na cobrança de outros usuários. Restrinja ao máximo os acessos aos bancos que conterão as credenciais e os certificados para evitar que outras pessoas vazem estes dados. Ao implementar o webhook Pix, utilize o mTLS e/ou HMAC para garantir que a comunicação esteja sendo de fato feita pelos servidores da Efí.

Caso tenha alguma outra dúvida basta nos perguntar para que possamos lhe auxiliar da maneira mais assertiva possível.

# devs
Avatar discord do usuario caiquegarcia.

caiquegarcia.

Ver Respostas

Boa tarde pessoal, vocês tem um exemplo de configuração do webhook e webhook/pix utilizando as rotas do laravel ?
Fiz as seguintes configurações, mas estou tendo erro ao executar a rota
imagem enviada na mensagem pelo usuario caiquegarcia.
imagem enviada na mensagem pelo usuario caiquegarcia.
imagem enviada na mensagem pelo usuario caiquegarcia.

# dúvidas
Avatar discord do usuario esdrasfyy

esdrasfyy

Ver Respostas

'pix_cert' => public_path('certs/certificate-chain-prod.crt'),

alguem que manja de php e efipay ai me da uma ajuda aqui, estou cadastrando o webhook e passando o pix_cet porem ta dando esse erro

"curl_setopt_array(): Cannot represent a stream of type Output as a STDIO FILE"

# pix
Avatar discord do usuario fernando.areco

fernando.areco

Ver Respostas

Boa tarde pessoal. Desde ja desculpem a ignorância. Minha duvida eh se na requisicao que o Webhook faz ao meu servidor, dado que o valor da chave (dicionario) 'pix' eh um array, posso ter mais de um elemento de cobranca, por exemplo?

{'pix': [{...}]}