Histórico de mensagens sobre location em pix

EXIBINDO CONVERSAS RECENTES:

Texto: location
Canal: pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O GUID no campo 26 sub-campo 0. O location no campo 26 sub-campo 25.

Avatar discord do usuario rafaelvolpato

rafaelvolpato

nao entendi o guid duplicado e nem o do location, pode me dizer aonde deveria estar?

Avatar discord do usuario rafaelvolpato

rafaelvolpato

esses: Não devia ter a chave, nem ter GUID duplicado, e o location está no campo errado

Avatar discord do usuario rubenskuhl

rubenskuhl

Mas tem erro no EMV sim. Não devia ter a chave, nem ter GUID duplicado, e o location está no campo errado.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!837335921677566023>. Será o elemento 62 05 mesmo, que se refere ao txid.
Você pode também utilizar o endpoint GET/v2​/loc/:id/qrcode para gerar o QRCode, onde o id é o identificador do location da cobrança, e então já lhe retornamos o Pix Copia e Cola e o QRCode em base64.

json
{
"qrcode": "00020126880014BR.GOV.BCB.PIX2566qrcodes-pix.gerencianet.com.b...",
"imagemQrcode": "data:image/png;base64,iVBORw0KGgoAAAAOQAAADkCAYAAACIV4s..."
}

Avatar discord do usuario smsoousa

smsoousa

Ver Respostas

<@!775350441965649951> , tenho pouca experiência em PHP. Estou utilizando o código pronto desenvolvido pelo canal WDEV. O QrCode estático está funcionando muito bem, porém, quando tento gerar o QrCode dinâmico, recebo o seguinte erro:
Array
(
[message] => Forbidden
)
Que está relativamente ligado com o item Location

Avatar discord do usuario destemido9466

destemido9466

$config = [
"certificate" => realpath("certs/producao/certificado.pem")
];

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix.gerencianet.com.br/v2/webhook/".$chave_pix,
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_SSLCERT => $config["certificate"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "https://webhook.com/webhook"
}',
CURLOPT_HTTPHEADER => array(
'authorization: Bearer '.$access_token,
'x-skip-mtls-checking: false',
'Content-Type: application/json'
),
));

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


if ($response === FALSE){
$curl_error = curl_error($curl);
}

curl_close($curl);
echo $response;

Avatar discord do usuario diegohenrique1989

diegohenrique1989

Ver Respostas

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix-h.gerencianet.com.br/v2/webhook/[email protected]',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_SSLCERT => OPTIONS["pix_cert"],
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "' . WEBHOOK_URL . '"
}',
CURLOPT_HTTPHEADER => array(
"authorization: $tokenType $token",
'x-client-cert-pem: {{X-Certificate-Pem}}',
'x-skip-mtls-checking: true'
),
));

Avatar discord do usuario brunodelara

brunodelara

Cara, melhor fazer diretamente no vhost. dentro do assim como está no site

Avatar discord do usuario rubenskuhl

rubenskuhl

O 25 que está zerado devia ser o sub-campo 25 do campo 26, que é o location. E tinha que ter a URL do payload aí.

Avatar discord do usuario rubenskuhl

rubenskuhl

Um que está faltando é o location, que é o que vai permitir o PSP do pagador acessar os dados da cobrança.

Avatar discord do usuario cleiton7853

cleiton7853

SSLVerifyClient none

SSLVerifyClient require
SSLVerifyDepth 3

Avatar discord do usuario lindomar-oliveira

lindomar-oliveira

Ver Respostas

server {

location / {
root /var/www/html;
try_files $uri /index.html;
}

location /api {
proxy_pass http://localhost:5000/api;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}

location /api/gn/webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}

proxy_pass http://localhost:5000/api;
}


listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/privkey.pem; # managed by Certbot
ssl_client_certificate /home/certs/gn-webhook-pix-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, <@!837319378772820018>!

Cada location é uma url de capacidade. As URLs de capacidade concedem acesso a informações para qualquer pessoa que tenha a URL.

Neste caso, no momento que o usuário pagador efetua a leitura de um QR Code dinâmico gerado pelo recebedor, esta URL será acessada pelo PSP pagador e seu conteúdo consiste em uma estrutura JWS. Este objeto JWS apresenta três fragmentos separados pelo caractere . (ponto). São eles: header, payload e signature. Segue um exemplo:

eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXUyJ9.eyJ0eElkIjoiNTJjNDMzNjEtY2FhMS00ZGRiLTkxNTItNzA4NDI2YTI1ZGIzIiwicmV2aXNhbyI6IjMiLCJjYWxlbmRhcmlvIjp7ImNyaWFjYW8iOiIyMDIwLTA5LTE1VDE5OjM5OjU0LjAxM1oiLCJhcHJlc2VudGFjYW8iOiIyMDIwLTA0LTAxVDE4OjAwOjAwWiIsImV4cGlyYWNhbyI6IjEyMDAifSwidmFsb3IiOnsib3JpZ2luYWwiOiI1MDAuMDAifSwiY2hhdmUiOiI3NDA3YzljOC1mNzhiLTExZWEtYWRjMS0wMjQyYWMxMjAwMDIiLCJzb2xpY2l0YWNhb1BhZ2Fkb3IiOiJJbmZvcm1hciBjYXJ0w6NvIGZpZGVsaWRhZGUiLCJpbmZvQWRpY2lvbmFpcyI6W3sibm9tZSI6InF1YW50aWRhZGUiLCJ2YWxvciI6IjIifV19.khlLEW4Q4W6zIYlacIaSHzwg_q9JrIkeinmvRDcUUD3120oXXew_xqSEAWsefY28g4MhUmK-RuaZgn1_rR22ZVM1pDbblw7Sk6dlHGxEc8PbMzMgEJPLdOZRumzMLx6YBYLAYsxT-HZp_vmBT713biN3jJf3V55z9RK6Xyo1CeWvemt81_O4kyGZ9lbp7p0VhmdJ9u6_EquEyP2n0uWy2ikbe7AFobkAdBRoF8gtp891WG5-gZmk4ZzATORNQOTrytQYMyprWV7o_prVjwT308RUo9Si-FRPTvYRGqyKo-voGoQVaZgCMUjc0jLr9WqYCRMyeCJZHTJmpaCFSNQnhw
Em termos de funcionalidade, o fragmento que interessa ao pagador é o "payload", que apresenta estrutura contendo detalhes da cobrança, conforme exemplo:
json
{
"txId": "fc9a4366ff3d4964b5dbc6c91a8722d3",
"revisao": "3",
"calendario": {
"criacao": "2020-09-15T19:39:54.013Z",
"apresentacao": "2020-04-01T18:00:00Z",
"expiracao": 3600
},
"status": "ATIVA",
"valor": {
"original": "500.00"
},
"chave": "7407c9c8-f78b-11ea-adc1-0242ac120002",
"solicitacaoPagador": "Informe o número ou identificador do pedido.",
"infoAdicionais": [
{
"nome": "quantidade",
"valor": "2"
}
]
}

Avatar discord do usuario fernandogomes2667

fernandogomes2667

Ver Respostas

Bom dia, alguém poderia me dar uma breve definição do location ou link contendo a definição?

Avatar discord do usuario vitoremanoel_

vitoremanoel_

Ver Respostas

Config nginx:

server {
listen 443 ssl;
ssl_client_certificate /etc/certificates/gn-chain-pix-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 2;

ssl_certificate /etc/certificates/server_ssl.crt;
ssl_certificate_key /etc/certificates/server_ssl.key;

server_name dnsaqui;

location /gn/pix {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header SSL_Client $ssl_client_s_dn;
proxy_set_header SSL_Client_Verify $ssl_client_verify;
proxy_pass http://192.168.0.114:6060/pix;
}

location /gn {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
return 200 'OK';
}
}

Avatar discord do usuario .gabrielkenji

.gabrielkenji

Ver Respostas

Bom dia,
Estou implementando as formas de recebimento: no PIX e COB..
A diferença entre os dois é:
- PIX é especifico para uma pessoa (aonde informamos a chave), esse sem o QRCode..
- COB é uma cobrança imediata (tipo consumidor); aonde é possível informar o campo "devedor" mas é opcional.. gerando uma cobrança com QRCode, (a partir do Location)..
- COB{txid} é a vinculação entre Cobrança e Pedido (numero único do sistema)..

Perguntas:
- no caso do PIX, logo depois de fazer a requisição; No "app" do banco da pessoa vai aparecer a cobrança?
- percebi que no caso do PIX, é possível informar uma conta (nome, agencia, conta corrente), teoricamente o pagador tem que ter um pix, mas o recebedor não? como ficaria a parte de consulta de status de pagamento nesse caso, a mesma coisa?
- no caso do COB, é mais direcionado para uma cobrança presencial; aonde o cliente pode receber o qrcode e pagar no ato da compra, e o COB{txid} é mais para uma modalidade de entrega, que o cliente vai pagar num período pré-determinado?

Avatar discord do usuario guilherme_efi

guilherme_efi

Para gerar um QR Code dinâmico de um location, basta informar o id do loc que é retornado ao criar uma cobrança.

Exemplo:
Ao gerar uma cobrança, você terá como retorno:
imagem enviada na mensagem pelo usuario guilherme_efi

Avatar discord do usuario brunocassimiro

brunocassimiro

Ver Respostas

Bom dia, mais alguém com problemas para pagar o qrcode gerado pela api pelo PicPay? Tentei tanto gerando o location e enviando para o endpoint GET/v2​/loc/{id}/qrcode quanto por geradores fornecidos pelos contribuidores do repositório do BACEN no github :/

Avatar discord do usuario celestino8068

celestino8068

Ver Respostas

o id numérico que vem na location