Calcular a data + expiração. Acessar a URL não tem ainda uma forma padronizada de resposta entre PSPs.
Termos mais procurados:
Termos mais procurados:
Calcular a data + expiração. Acessar a URL não tem ainda uma forma padronizada de resposta entre PSPs.
Fala pessoal, bom dia! Sou novo aqui e estou com uma dúvida - por favor me desculpem se esse não é o formato correto ou se falei alguma besteira.
Estou fazendo uma cobrança PIX imediata (POST /v2/cob), mas estou tratando um caso de que não foi efetuado o pagamento. Vi que a expiração é em segundos (3600), ou seja, depois de uma hora essa cobrança é expirada.
Quando consulto a cobrança após uma hora (GET /v2/cob/:txid), o status dela ainda é ATIVA. Se eu acesso a url em location (no exemplo da documentacao, pix.example.com/qr/9d36b84f-c70b-478f-b95c-12729b90ca25), ela retorna a mensagem {"nome":"cobranca_expirada","mensagem":"A cobrança expirou"}.
Dada a situação, pergunto: qual a melhor forma de verificar se a cobrança está expirada? Acessar a url em location, calcular a data + expiração, ou existe uma forma mais efetiva?
Agradeço desde já!
Com QR-Code dinâmico, não. Mas se QR-Code estático atender sua necessidade, no estático não tem URL de payload.
se não tivesse essa URL dentro do payload, funcionaria.
E o que já existia parece estar mais detalhado, e mudou de URL para:
https://dev.gerencianet.com.br/docs/api-pix-endpoints
Alguém consegue me ajudar aqui com a api pix? por algum motivo minha requisição curl nao está dando response no site da gerencianet, até baixei os proprios códigos da doc e mesmo assim não foi, é como se a requisição não fosse feita, estou utilizando php
";";
echo $response;
echo "
Boa tarde quando eu tento cadastrar um webhook volta este erro aqui, meu sistema já está com HTTPS e já ta com o SSL instalado
"nome" => "webhook_invalido"
"mensagem" => "A autenticação de TLS mútuo não está configurada na URL informada"
vc está passando :chave no url mesmo?
Complementando: se sua chave Pix estiver atrelada a uma URL webhook e a cobrança com um txid, nó enviaremos a notificação no caso do pagamento
O cadastro do endpoint para webhook possui uma pegadinha, durante o processo cadastro ele testa a URL cadastrada. Porem ele consome um endpoint diferente do que é consumido para o envio das notificações. Precisei cadastrar o end-point (GET) https://xxx/gerencianet/ porem o endpoint que é consumido é o (POST) https://xxx/gerencianet/pix
Ops, troquei o mês mas não troquei o ano 😅
O problema era na rota mesmo, eu ainda tinha dúvidas sobre esse /pix no final, mas esse trecho ({$request.body#/webhookUrl}/pix) me deu mais clareza sobre os parâmetros. Obrigado 🙂
Boa tarde @Deleted User, você deve se atentar ao fato que quando é feito o cadastro do webhook, nós mandamos 2 requisições: Uma sem o nosso certificado(deve ser recusada) e uma com o certificado da Gerencianet. Neste caso para que o cadastro seja feito com sucesso o seu servidor deve estar configurado com o certificado que disponibilizamos em https://dev.gerencianet.com.br/docs#section-webhook.
Outro ponto a se atentar é que a rota que você está utilizando https://api-pix.gerencianet.com.br/v2/webhook?inicio=2020-05-20T21:00:00Z&fim=2020-05-22T21:01:35Z é para consultar webhooks cadastrados em suas respectivas chaves(inclusive as datas de parâmetro estão com o ano de 2020 selecionado), esse endpoint não retorna logs de webhook. E você deve verificar também que ao cadastrar o seu webhook, nós notificamos ele acrescentando o /pix(POST {$request.body#/webhookUrl}/pix), sendo assim no seu servidor deve ter uma tratativa para o /pix
Boa tarde, pessoal!
Estou tendo um problema com o recebimento do webhook.
Na rota de webhook eu programei pra registrar um log das requests pra eu ver se está tudo ok. Quando eu faço um PUT pra configurar o webhook, o site faz o log do evento teste certinho e tenho o retorno HTTP 200 OK.
Bom dia, pessoal. Tudo bom?
Estou tentando configurar o webhook. Fiz as configurações do apache2 para exigir o certificado, mas o recurso de configuração informa que a url retornou 403.
O certificado que coloquei foi baixado do link disponibilizado na documentação.
(https://pix.gerencianet.com.br/webhooks/chain-pix-prod.crt)
Outro detalhe é a adição do /pix no final da sua URL que deve ser tratada no location das configurações de seu Nginx.
Ou seja, na request PUT https://api-pix.gerencianet.com.br/v2/webhook/:chave você irá passar o body com sua URL, exemplo:
é um apontamento pra uma url externa do arquivo?
post: {
method: 'POST',
url: 'https://api-pix.gerencianet.com.br/v2/cob',
headers: {
Authorization: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiYWNjZXNzX3Rva2VuIiwiY2xpZW50SWQiOiJDbGllbnRfSWRfMjhmODZhZTQ2ZjNiNDRhMWE1N2M3NmExNTNlMzMyZWJkNTU4Y2NkYyIsImFjY291bnQiOjMwMTg2NCwiYWNjb3VudF9jb2RlIjoiZjk2YzM1YTVjNjc2N2ZjYzk2ZmU0YjVkNWJmMzcyNjQiLCJzY29wZXMiOlsiY29iLnJlYWQiLCJjb2Iud3JpdGUiLCJnbi5iYWxhbmNlLnJlYWQiLCJnbi5waXguZXZwLnJlYWQiLCJnbi5waXguZXZwLndyaXRlIiwiZ24uc2V0dGluZ3MucmVhZCIsImduLnNldHRpbmdzLndyaXRlIiwicGF5bG9hZGxvY2F0aW9uLnJlYWQiLCJwYXlsb2FkbG9jYXRpb24ud3JpdGUiLCJwaXgucmVhZCIsInBpeC53cml0ZSIsIndlYmhvb2sucmVhZCIsIndlYmhvb2sud3JpdGUiXSwiZXhwaXJlc0luIjozNjAwLCJjb25maWd1cmF0aW9uIjp7Ing1dCNTMjU2IjoiUGtuRDBnYy96Zjh5VHI0RFl5aGJGR1J3M1gzQVM4YTl4dy8vNkUrcklGYz0ifSwiaWF0IjoxNjIxNTE4Njc0LCJleHAiOjE2MjE1MjIyNzR9.bEfZcubm3yF-usxnw09lh8qhXM-RaClAZcf7luOaa6U',
'Content-Type': 'application/json'
},
httpsAgent: Agent {
_events: [Object: null prototype] {
free: [Function (anonymous)],
newListener: [Function: maybeEnableKeylog]
},
_eventsCount: 2,
_maxListeners: undefined,
defaultPort: 443,
protocol: 'https:',
options: {
pfx: ,
passphrase: '',
path: null
},
requests: {},
sockets: {},
freeSockets: {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: 'fifo',
maxTotalSockets: Infinity,
totalSocketCount: 0,
maxCachedSessions: 100,
_sessionCache: { map: {}, list: [] },
[Symbol(kCapture)]: false
},
//gerar qrcode
url = new URL ("https://api-pix-h.gerencianet.com.br/v2/loc/80/qrcode"); //Para ambiente de Desenvolvimento
conn = (HttpsURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization","Bearer "+token);
conn.setSSLSocketFactory(sslsocketfactory);
System.out.println(conn.getResponseCode());
System.out.println(conn.getResponseMessage());
''' url = new URL ("https://api-pix-h.gerencianet.com.br/v2/cob/"+main.getSaltString()); //Para ambiente de Desenvolvimento
conn = (HttpsURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("PUT");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization","Bearer "+token);
conn.setSSLSocketFactory(sslsocketfactory);
input = "{\"chave\": \"+55 34 9 8436-7252\",\"calendario\": {\"expiracao\": 3600 },\"valor\": {\"original\": \"123.45\" }}";
os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();
responseCode = conn.getResponseCode();
if (responseCode >= 200) {
System.out.println(responseCode);
reader = new InputStreamReader(conn.getInputStream());
}else {
System.out.println(responseCode);
reader = new InputStreamReader(conn.getErrorStream());
}
br = new BufferedReader(reader);
while ((response = br.readLine()) != null) {
System.out.println(response);
}