Bom dia, @berzacola! Como vai?
A chave Pix do pagador que está utilizando no CURL, é a mesma que está no seu Postman?
Pois o webhook está associado a chave Pix.
Termos mais procurados:
Termos mais procurados:
Bom dia, @berzacola! Como vai?
A chave Pix do pagador que está utilizando no CURL, é a mesma que está no seu Postman?
Pois o webhook está associado a chave Pix.
Bom dia, tudo bem ? Com o webhook você vai cadastrar uma URL do seu sistema para receber notificações sobre os pagamentos da sua chave PIX. Sempre que houver uma mudança no status da cobrança, enviaremos um POST contendo o conteúdo da transação. Você pode encontrar mais detalhes sobre o webhook em nossa documentação: https://dev.gerencianet.com.br/docs/api-pix-endpoints#webhooks
Bom dia @lucasbernieri tudo certo?
No momento da crianção da cobrança você precisa definir uma URL de notificações.
Dessa forma, quando houver uma alteração no status da cobrança, será enviado para aquela URL um post contendo o token de notificação.
Você então utiliza esse token para consultar na nossa API que retornará o status atualizado da cobrança.
Na nossa documentação você encontra mais detalhes sobre esse processo: https://dev.gerencianet.com.br/docs/notificacoes-recebendo
Bom dia pessoal, estou com algumas dúvidas relacionadas com a integração via API para o PIX.
Usando o SDK PHP, já consegui gerar as cobranças, associadas com uma chave PIX gerada dentro da minha conta, mas estou um pouco confuso sobre a parte de webhooks de notificação e diferenças entre homologação e produção.
Sobre a parte de Webhooks, eu entendi que preciso cadastrar via API qual é a URL que o Gerencianet deverá notificar quando houver algum evento relacionado com a chave PIX. Até consegui realizar alguns testes utilizando a coleção do postman, gerando a cobrança e recebendo a notificação post da Gerencianet.
Um ponto relacionado com a aplicação que estou trabalhando é que o cliente está em um servidor compartilhado. Vi na documentação que é possível utilizar o parâmetro
Você pode copiar o token de notificação do histórico e realizar um POST para sua URL através do Postman
Bom dia, @israelcosta.
Acredito então, como não vai configurar no Apache ou Nginx o mTLS, você deverá registrar sua webhook URL com o atributo x-skip-mtls-checking=true
Veja mais detalhes e pontos de atenção em nossa documentação: https://dev.gerencianet.com.br/docs/api-pix-endpoints#skip-mtls
Segundo ponto, os callbacks são enviados pela Efí via POST /pix quando há uma alteração no status do Pix. Então nestas rotas você deve esperar Route:post.
Por último, adicione também a rota POST '/webhook', pois é feito uma requisição de teste nela também.
Bom dia, @alefvieirbv! Tudo joia?
Você precisa cadastrar uma URL que aceite requisições do tipo POST em seu sistema.
Em relação ao custom_id, você tem uma duvida especifica?
curl --location --request POST 'https://api-pix-h.gerencianet.com.br/oauth/token' \
--header 'Authorization: Basic Q2xpZW50X0lkX2Q5MzAzNWFiNDgxZGI5MzEyNDIwNDgxMGU5NzM2M2Y3NmIwZWI0NDI6Q2xpZW50X1NlY3JldF9lNGUxN2M2YWQ3ZDY4ODZiMDYzNDk3ODUwY2VmOWVlMWU3OGY0YTIx' \
--header 'Content-Type: application/json' \
--data-raw '{
"grant_type": "client_credentials"
}'
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://v5.chatpro.com.br/$id_instancia/api/v1/send_message",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"number\":\"$numero_telefone\",\"message\":\"$texto\"}",
CURLOPT_HTTPHEADER => [
"Authorization: $token",
"accept: application/json",
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Tentei isso direto no PHP e retorna NULL. O que eu fiz de errado?
O código completo do PHP ficou assim:
$arq_certificado = "MeuCertificadoQueEstáNoMesmoDiretorio.p12";
$client_id = "MeuClientID";
$client_secret = "MeuClientSecret";
$curl = curl_init();
$authorization = base64_encode("$client_id:$client_secret");
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix.gerencianet.com.br/oauth/token", // Rota base, desenvolvimento ou produção
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 => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $arq_certificado, // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $authorization",
"Content-Type: application/json"
),
));
$auth = json_decode(curl_exec($curl), true);
curl_close($curl);
$tokenType = $auth['token_type'];
$accessToken = $auth['access_token'];
echo "$accessToken";
var_dump($auth);
?>
O Curl é meu profeta e nada meu faltará. Mas Postman vale também.
Onde posso acompanhar os erros de envio do webhook? Estou setando a URL e a chave PIX, recebo um OK, quando consulto, a URL está lá... mas ao receber um pagamento PIX, não recebo o POST
Olá, @ricardogssa. Bom dia!
Nesse caso, você pode montar as requisições dos endpoints (https://dev.gerencianet.com.br/docs/api-pix-endpoints) usando o cURL.
Para facilitar esse processo você pode nossa collection do Postman (https://sejaefi.link/ryeAmpRfMh), e gerar snippet de código para ter o exemplo cURL do endpoint.
@joao_efi se eu quiser usar o "Skip-mTLS" (utilizando a validação por ip e uma hash ao final da URL) basta eu ignorar o certificado ? os dados do pix pago entregues pelo POST poderá ser lido sem problemas?
Bom dia @tiagooops tudo certo?
Por determinação do Banco Central, nossa API adiciona o /pix ao final da URL cadastrada, sendo assim
Se você cadastra o webhook a URL:
exemplo.com.br/webhook
A confirmação de pagamento será enviada para:
exemplo.com.br/webhook/pix
Além da rota criada acima, é necessário que você adicione a rota a seguir:
Olá @lordvitao! No caso de boletos é um pouquinho diferente. A URL deve ser informada em cada requisição; enviaremos um POST com o token de notificação, o seu servidor deve então consultar este token para conseguir visualizar o conteúdo informado.
Bom dia @leofnh ! Quando uma transação possui uma URL de notificação cadastrada (atributo notification_url), a Efí dispara um POST para esta URL a cada mudança no status da cobrança. Esse POST vai conter um token de notificação. Então você precisa cadastrar uma URL de notificação na cobrança e prepará-la para mostrar/armazenar o token de notificação para você consultar essa informação.