Histórico de mensagens sobre location

EXIBINDO CONVERSAS RECENTES:

Texto: location
# pix
Avatar discord do usuario Deleted User

Deleted User

SSLCACertificateFile /var/www/hwaiter/storage/app/pix/chain-pix-prod.crt
SSLVerifyClient none

SSLVerifyClient require
SSLVerifyDepth 3

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Você se refere ao location do QrCode dinâmico?
Consultando o location possui o status da cobrança, ou seja, sendo um QrCode que pode ser pago várias vezes, se você receber um Pix por esta cobrança ela continuará com o status "ATIVA".

Com o webhook cadastrado com sua chave, com as cobranças que possuem txid você é notificado quando um Pix é recebido.
Além disso, pode ser ser realizada a consulta pela rota /v2/pix com os parâmetros inicio=data_da_criação da cobrança, fim=data_atual e o txid da cobrança

# pix
Avatar discord do usuario franciscorsobrinho

franciscorsobrinho

Ver Respostas

Este é o primeiro relato similar que vejo, mas se tivesse acontecido comigo, dividiria a análise do caso em 3 partes.
- certificar se o cliente realmente não foi debitado, uma vez que pelo relato, ele não sabe o saldo anterior e, aparente, não sabe consultar o histórico de movimentações
- certificar se houve mudança de status na GN que justifique a baixa da cobrança
- certificar se o sistema está fazendo baixas apenas com base em notificações realmente pagas, pois nem toda cobrança com status "CONCLUIDA" está de fato paga

Minha impressão é que pode ter ocorrido o seguinte (HIPÓTESE):
Algumas cobranças passam para o status "CONCLUIDA" em determinadas situações, principalmente quando consumimos a rota PUT /v2/cob. Não era pra acontecer, mas acontece. Daí, pode ser que quando o cliente leu o location, a cobrança pode ter mudado de status para "CONCLUIDA". Então, quando ele tentou pagar deu erro, pois a cobrança não estava mais "ATIVA". Uma notificação de mudança de status ocorreu ao alterar para "CONCLUIDA" e o sistema processou a baixa sem verificar se o array de pix estava devidamente preenchido

# pix
Avatar discord do usuario leomp12x

leomp12x

Ver Respostas

js
pix.axios({
url: /v2/cob/${txid},
method: 'PUT',
data: pixCob
})
.then(({ data }) => {
const location = (data.loc && data.loc.location) || data.location
const pixCodeHost = 'https://gerarqrcodepix.com.br/api/v1'
const pixCodeParams = &location=${location} +
&nome=${encodeURIComponent(config.pix_receiver || params.domain)} +
&cidade=${encodeURIComponent(config.pix_city || params.domain)}
const qrCodeUrl = ${pixCodeHost}?saida=qr&${pixCodeParams}
const brCodeUrl = ${pixCodeHost}?saida=br&${pixCodeParams}

return axios.get(brCodeUrl).then(({ data }) => {
const { brcode } = data
// ...
})
})

# pix
Avatar discord do usuario hiagosilvas

hiagosilvas

Ver Respostas

Boa tarde pessoal, uma dúvida. Quando eu gero uma cobrança, eu pego o retorno no location e gero um QRCode dinâmico. Porém ao acessar o BR-Code no app do banco o valor não vem preenchido.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Nós temos um exemplo no github, que possui a collection no Postman também para gerar QrCode https://github.com/ceciliadeveza/gerarqrcodepix
Com esta API, você pode gerar direto o QrCode, informando o location da cobrança que vc criar

# pix
Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

você está passando os dados do Body ?

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/v2/cob/fc9a4366ff3d4964b5dbc6c91a8724d5",
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 =>"{\r\n \"calendario\": {\r\n \"expiracao\": 3600\r\n },\r\n \"devedor\": {\r\n \"cpf\": \"12345678909\",\r\n \"nome\": \"Francisco da Silva\"\r\n },\r\n \"valor\": {\r\n \"original\": \"124.45\"\r\n },\r\n \"chave\": \"\",\r\n \"solicitacaoPagador\": \"Cobrança dos serviços prestados.\"\r\n}",
CURLOPT_HTTPHEADER => array(
"authorization: {{Authorization}}",
"x-client-cert-pem: {{X-Certificate-Pem}}"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

No início não tinha mesmo. Mas acrescentamos o "loc" para estar em conformidade com o Banco Central, que também possui os dois "location". Você pode verificar aqui a documentação do Bacen https://bacen.github.io/pix-api/#/Cob/put_cob__txid_
Para melhor entendimento, atualizamos nossa documentação com esta informação.

# pix
Avatar discord do usuario amadeujunior18

amadeujunior18

Ver Respostas

Na versão anterior da documentação tinha um "location": "url", agora esta recebendo alem dele um "loc" : {"location" : "url"}, com o mesmo conteúdo, olhando o exemplo que foi feito em php por parte da consultoria, vi que esta utilizando "loc" : {"location" : "url"}.
Pergunta, vai ser desativado o "location": "url" , em futuras atualizações da api?

# pix
Avatar discord do usuario amunhoz

amunhoz

Ver Respostas

Então é só preencher a chave principal da conta digital, correto?
O Oauth no meio da documentação, tem que usar? Não entendi bem como entra no resto. Eu tenho que gerar um usuário antes? Não tem isso na interface web manualmente?
Já os webhooks, não encontrei exemplos de todos os status e o significado de cada um.
O Qrcode, vem no campo 'location' na resposta da criação de cobrança, correto?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não, o QR-Code vai com o location sem protocolo (https://) mesmo, e você só precisa baixar o payload se quiser conferir se foi como você mandou na API.

# pix
Avatar discord do usuario alexmelloprovider1302

alexmelloprovider1302

Ver Respostas

Pessoal estou com uma duvida, preciso renderizar a URL que vem no location ou o JWS retornado para montar o qr code?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Location pode ser reusado pra mais de um txid dinâmico na API do BACEN, mas ainda não está implementado na GN.

# pix
Avatar discord do usuario gabrieligbastos

gabrieligbastos

E a cobrança só pode ser paga uma vez? porque estava vendo, o QR Code pra pegar de uma location tem que ser dinamico, e ai só pode ser usado uma vez... no workshop vi que tiveram mais de um pagamento pra mesma cobrança lá..

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Para cada criação de cobrança vem um location, não uma chave.

# pix
Avatar discord do usuario mmhospedagem

mmhospedagem

Array
(
[calendario] => Array
(
[criacao] => 2020-12-13T04:01:01.000Z
[expiracao] => 3600
)

[txid] => PIX5B4T2KW7M8QXFJSV0APUD7E
[revisao] => 0
[loc] => Array
(
[id] => 72
[location] => qrcodes-pix.gerencianet.com.br/v2/e05e58d660f44e14bc652819c385f4c9
[tipoCob] => cob
[criacao] => 2020-12-13T04:01:01.000Z
)

[location] => qrcodes-pix.gerencianet.com.br/v2/e05e58d660f44e14bc652819c385f4c9
[status] => CONCLUIDA
[devedor] => Array
(
[cpf] => 04698640369
[nome] => Maik Venancio de Oliveira
)

[valor] => Array
(
[original] => 0.01
)

[chave] => 382ce08f-7200-4997-9616-613cade4f7e6
[solicitacaoPagador] => FATURA_2
[pix] => Array
(
[0] => Array
(
[endToEndId] => E18236120202012130408s0636219IRW
[txid] => PIX5B4T2KW7M8QXFJSV0APUD7E
[valor] => 0.01
[horario] => 2020-12-13T04:08:37.000Z
)

)

)

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Segue sugestão de EMV/BRCode para dinâmico:

00:01 (versão)
01:12 (uso único)
26 00:br.gov.bcb.pix (em minúsculas pois é o que parece dar menos problema de não reconhecimento)
26 25:qrcodes-pix.gerencianet.com.br/v2/6387cb2c8dd94ca6b1349f9e825a83e8 (location obtido do PSP, hostname em minúsculas, path conforme PSP)
52:0000 (mcc)
53:986 (reais)
54:"40.00" (ou o valor da fatura em questão, parece útil em alguns PSPs para evitar edição de valor)
59:"Meu Estabelecimento" (é mostrado indevidamente por alguns PSPs)
60:"Sao Paulo" (sem acentuação)
61:"01000000" (CEP sem o -)
62 05:"" (TxID de dinâmico vem no payload)
63:CRC

# pix
Avatar discord do usuario felipoantonoff

felipoantonoff

Usei o Curl da Lib PHP, com pequena adição de logs, segue o Curl usado:

php
$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => $pix_url_cob,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 8,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_SSLCERT => $arq_certificado,
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS => $body,
CURLOPT_HTTPHEADER => [
"authorization: $tokenType $accessToken",
"Content-Type: application/json",
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);
if ($err) {
$this->log->write('emitePix() - Error Curl' . print_r($err, true));
return false;
}

$this->log->write('emitePix() - Error Curl' . print_r($err, true));

$this->log->write('emitePix() - Response ' . print_r($response, true));"

Curioso, que parece ocorrer só nesta chamada, a autorização não ocorre isso.
Uso o PHP 7.2 no servidor e com HTTPS.

# pix
Avatar discord do usuario felipoantonoff

felipoantonoff

No SDK mudei:
function getPayload($location)
{
$location = 'https://'.$location;

Acrescentei isso caso alguem precise

# pix
Avatar discord do usuario felipoantonoff

felipoantonoff

A certo pela API está vindo sem, ai o SDK usa direto o location, vou tentar complementar e ver se resolve, obrigado