Histórico de mensagens sobre location em pix

EXIBINDO CONVERSAS RECENTES:

Texto: location
Canal: pix
Avatar discord do usuario .gabrielkenji

.gabrielkenji

Ver Respostas

Depois de gerado, eu devo criar um QRCode apartir da tag: "location"?

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Boa tarde <@!184739727407054849> tem sim, por meio do endpoint GET/v2​/loc/{id}/qrcode você vai informar o id da location referente a cobrança gerada e terá como retorno o BRCode(copia e cola) e a imagem do QRcode.

Avatar discord do usuario daniel.falsetti

daniel.falsetti

"cob.read cob.write gn.balance.read gn.pix.evp.read gn.pix.evp.write gn.settings.read gn.settings.write payloadlocation.read payloadlocation.write pix.read pix.send pix.write webhook.read webhook.write"

Avatar discord do usuario uaca

uaca

uma outra duvida, no location do qr code

Avatar discord do usuario msxvdp

msxvdp

Ver Respostas

estão incluídos sim:
"scope": "cob.read cob.write gn.balance.read gn.pix.evp.read gn.pix.evp.write gn.settings.read gn.settings.write payloadlocation.read payloadlocation.write pix.read pix.write webhook.read webhook.write"
Ambiente: Homologação

Avatar discord do usuario W3soft

W3soft

Bom dia, para usar os location tem que ter algo a mais? toda vez que faço a requisição na hora de gerar o qrcode isso me retorna > {"error":"insufficient_scope","error_description":"Access token has insufficient scope"}

Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

$config = [
"certificado" => $this->pixCert,
// "certificado" => DIRPAGE."src/Includes/olimppiuspix.crt.pem",
// "certificado" => "",
"client_id" => $this->clientId,
"client_secret" => $this->clientSecret
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix-h.gerencianet.com.br/v2/webhook/',
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": "https://olimppi.us/webhook/index.php"
}',
CURLOPT_HTTPHEADER => array(
// "authorization: {{Authorization}}",
"Authorization: Basic $autorizacao",
"Content-Type: application/json",
"x-client-cert-pem: {{X-Certificate-Pem}}",
"x-skip-mtls-checking: false"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O exemplo da GN para Nginx separa o mTLS só em um path:
server {
#
# ...
#
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate server_ssl.crt.pem;
ssl_certificate_key server_ssl.key.pem;
ssl_client_certificate /root/chain-pix-webhooks-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
#
# ...
#
location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
rewrite ^(.)$ /webhook;
}
}

Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiYWNjZXNzX3Rva2VuIiwiY2xpZW50SWQiOiJDbGllbnRfSWRfZjA3NzkyYjUyMzg5YmQzNzk1MWVkY2JlYmYzOTM2OTVhNWVlZDI2YiIsImFjY291bnQiOjI0MDQxMCwiYWNjb3VudF9jb2RlIjoiMGFlYTcwMWNlOWM5YmFiN2Q3NDc4NGJjN2RlNTc3YmQiLCJzY29wZXMiOlsiY29iLnJlYWQiLCJjb2Iud3JpdGUiLCJnbi5iYWxhbmNlLnJlYWQiLCJnbi5waXguZXZwLnJlYWQiLCJnbi5waXguZXZwLndyaXRlIiwiZ24uc2V0dGluZ3MucmVhZCIsImduLnNldHRpbmdzLndyaXRlIiwicGF5bG9hZGxvY2F0aW9uLnJlYWQiLCJwYXlsb2FkbG9jYXRpb24ud3JpdGUiLCJwaXgucmVhZCIsInBpeC5zZW5kIiwicGl4LndyaXRlIiwid2ViaG9vay5yZWFkIiwid2ViaG9vay53cml0ZSJdLCJleHBpcmVzSW4iOjM2MDAsImNvbmZpZ3VyYXRpb24iOnsieDV0I1MyNTYiOiJkR09nK1FMdFN4ZXRReWVnZUVuM1VaL1EwK2pBWTJpQ1l6eENNRDZTbzRFPSJ9LCJpYXQiOjE2MTYzMzcxNDQsImV4cCI6MTYxNjM0MDc0NH0.Ng-m4jLCaSO1H0yLmHnQDiiJ_axWGZkeH39kYwebPbE","token_type":"Bearer","expires_in":3600,"scope":"cob.read cob.write gn.balance.read gn.pix.evp.read gn.pix.evp.write gn.settings.read gn.settings.write payloadlocation.read payloadlocation.write pix.read pix.send pix.write webhook.read webhook.write"}

Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

$config = [
"certificado" => "/etc/certs-gerencianet/olimppiuspix.crt.pem",
"client_id" => $this->clientId,
"client_secret" => $this->clientSecret
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, homologação 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 => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response; //print_r($response);
echo "
";
// echo "Que que está acontecendo";

Avatar discord do usuario elsonlima0580

elsonlima0580

esse modelo então não é suficiente?
$config = [
"certificado" => "./certificado.pem",
"client_id" => "YOUR-CLIENT-ID",
"client_secret" => "YOUR-CLIENT-SECRET"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, homologação 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 => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Tente colocar o trecho SSLCACertificateFile /etc/ssl/certs/chain-pix-prod.crt fora do

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Location seria só /webhook, é URI-Path, não diretório

Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

Ver Respostas

Não consigo dar restart no apache com a configuração
:443>

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

ServerAdmin [email protected]
ServerName pix.meudominio.com.br
DocumentRoot /var/www/pix
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =pix.meudominio.com.br
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
SSLCertificateFile /etc/letsencrypt/live/pix.meudominio.com.br/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/pix.meudominio.com.br/privkey.pem

SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /etc/ssl/certs/chain-pix-prod.crt


Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

No Apache eu achava que era Directory, mas é Location mesmo:

## Se preferir deixar apenas uma rota de sua url para notificações você pode adicionar:

SSLVerifyClient none

SSLVerifyClient require
SSLVerifyDepth 3

Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

Ver Respostas

devo colocar um location?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

<@!818639956263567360> Este link não é possível acessar mesmo. Este link contido no BrCode é o location que possui os dados da cobrança para os PSPs lerem.
O brcode que lhe rotorna neste consumo é o mesmo que o Pix Copia e Cola.
Ou seja, com a string 00020126880014br.gov.bcb.pix2566qrcodes-pix.gerencianet.com.br/v2/c04644cfd18144db9e7f253c20b56e155204727453039865802BR5925PAGAMENTOSRENOVACAOAUTOPI6014Rio de Janeiro6207050363048DAA
você acessa o seu banco e paga através dela

Avatar discord do usuario paulo.manoel8302

paulo.manoel8302

Ver Respostas

Este endereço: https://gerarqrcodepix.com.br/api/v1?nome=PAGAMENTOSRENOVACAOAUTOPIX&cidade=Rio+de+Janeiro&location=qrcodes-pix.gerencianet.com.br%2fv2%2fc04644cfd18144db9e7f253c20b56e15&mcc=7274&saida=br&tamanho=256 me devolveu o seguinte link: pix.gerencianet.com.br/v2/c04644cfd18144db9e7f253c20b56e155204727453039865802BR5925PAGAMENTOSRENOVACAOAUTOPI6014Rio de Janeiro6207050363048DAA se eu acessar esse link a gerencianet me devolve página não encontrada

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Qual banco está tentando realizar o pagamento?
Realizei o teste com Santander e Nubank e funcionou normalmente.

Sugiro até utilizar a seguinte rota interna da Gerencianet: GET/v2​/loc/{id}/qrcode
Que é o endpoint para gerar QRCode de um location.
Você pode pega o id do location retornado após a geração da cobrança e consumir o GET /v2/loc/:id/qrcode e assim você vai ter o copia e cola e a imagem do Qrcode em base64.