Histórico de mensagens sobre url

EXIBINDO CONVERSAS RECENTES:

Texto: url
# pix
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Bom dia @ifollowyourivers ! Você configurou seu servidor e cadastrou uma url de webhook?

# devs
Avatar discord do usuario luisportugal_41963

luisportugal_41963

há algum módulo para NodeJS que já faça todo o processo de pagamento, tipo eu criar um pagamento e ter uma url que eu possa abrir pro cliente e que o efi faça todo o gerenciamento

# devs
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Bom dia @ghhwer ! Tudo bem? É possível sim, através da rota PUT /v1/charge/:id/metadata.
Neste link da documentação tem mais detalhes.

# devs
Avatar discord do usuario ghhwer

ghhwer

Ver Respostas

Pessoal, alguem sabe se é possivel trocar a URL de notificacao? Estamos fazendo um lift 'n shift da infra precisamos mudar o dominio mas tem algumas cobrancas quentes ainda

# 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 roxzin

roxzin

Ver Respostas

voce tem algum curl que eu possa consultar txid e receber o status?

# 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) . '
';

# pix
Avatar discord do usuario vinicio254

vinicio254

estou utilizando php e até agora não consegui cadastrar o webhook usando curl , falta isso

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @roxzin! Como vai?
Aqui está um código que funciona:

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"
];


$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/cob/' : 'https://pix.api.efipay.com.br/v2/cob/',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cpf": "12345678909",
"nome": "Francisco da Silva"
},
"valor": {
"original": "0.45"
},
"chave": "[email protected]"
}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $access_token",
"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) . '
';

if ($responsePix['loc']['id']) {
$idlocationPix = $responsePix['loc']['id'];

// Obtêm o Pix Copia e Cola e QR Code
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? 'https://pix-h.api.efipay.com.br/v2/loc/' . $idlocationPix . '/qrcode' : 'https://pix.api.efipay.com.br/v2/loc/' . $idlocationPix . '/qrcode',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $access_token",
),
));

$response = json_decode(curl_exec($curl), true);

curl_close($curl);


$PixCopiaCola = $response['qrcode'];
$imagemQrcode = $response['imagemQrcode'];


echo 'QR Code:';
echo '
' . json_encode($PixCopiaCola, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

echo 'Imagem:
';
echo '';
}
Também temos nossa SDK de PHP (https://github.com/efipay/sdk-php-apis-efi), que usa o Guzzle.

# pix
Avatar discord do usuario roxzin

roxzin

Ver Respostas

Bom dia, alguem tem um codigo funcional em php usando curl apenas para gerar qrcode dinamico? tudo que encontro é desatualizo e nao funciona direito.

# devs
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @agenciadiz. Tudo bem?
Recebemos alguns relatos semelhantes a estes, tudo indica que é uma falha no DNS do servidor utilizado para fazer a requisição em questão.
Os clientes que tiveram essa mesma situação ao alterar a URL base para https://cobrancas.api.efipay.com.br.

# devs
Avatar discord do usuario tellyscastro

tellyscastro

Ver Respostas

Tb estou trabalhando com Laravel. Eu consegui fazer o cadastro da url do webhook. Caso vc tenha interesse, posso lhe mostrar. So me chamar ai.. deu trabalho em..

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Você tem que configurar a URL final, sem redirects.

# pagamento-contas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, @wendersonferreira. Bom dia! Tudo ótimo e com você?
Para que seu sistema saiba quando o boleto for pago, você pode cadastrar uma URL de webhook. Assim, nossa API enviará as atualizações automaticamente para o seu sistema. Veja mais detalhes na nossa documentação: https://dev.efipay.com.br/docs/api-pagamento-de-contas/webhooks."

# 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 weslly99

weslly99

Ver Respostas

Boa tarde,
Estou construindo um pequeno SaaS com Tenent-Specific Integrations onde cada cliente deve inserir suas chaves da integração, e o sistema teria a responsabilidade de integrar e manter tais credenciais seguras. Porém lendo a documentação fiquei com dúvida se isso é realmente possível.
Algumas dúvidas são:
1. Cada cliente terá seu próprio certificado?
2. Devo ter uma url para cada cliente receber um webhook?
3. Quais outros cuidados devo ter?

(desculpa se estiver perguntando em um canal errado, sou novo aqui)