Histórico de mensagens sobre location em pix

EXIBINDO CONVERSAS RECENTES:

Texto: location
Canal: pix
Avatar discord do usuario clusterweb

clusterweb

Gerencianet Exception: Error 400: Nenhum location encontrado para o identificador informado.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Primeiro você deve autenticar na API e obter o access_token.

php
$curl = curl_init();

$authorization = base64_encode("$client_id:$client_secret");

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.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'];

Depois emitir o pix
php
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/v2/cob/$txID",
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 => $arq_certificado, // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS => '{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cpf": "02279112312",
"nome": "Maria apareciada monteiro"
},
"valor": {
"original": "10.21"
},
"chave": "",
"solicitacaoPagador": "Mensaldiade Monteiro Sistemas"
}',
CURLOPT_HTTPHEADER => array(
"authorization: $tokenType $accessToken",
"Content-Type: application/json"
),
));

$dadosPix = json_decode(curl_exec($curl), true);
curl_close($curl);

return $dadosPix;

Avatar discord do usuario deivson7351

deivson7351

Ver Respostas

seria isso:
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/v2/cob/$id",
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 =>'{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cpf": "02279112312",
"nome": "Maria apareciada monteiro"
},
"valor": {
"original": "10.21"
},
"chave": "",
"solicitacaoPagador": "Mensaldiade Monteiro Sistemas"
}',
CURLOPT_HTTPHEADER => array(
"authorization: {{$autorizacao}}",
"x-client-cert-pem: {{$config["certificado"]}}"
),
));

echo $curl;

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Avatar discord do usuario du2dev

du2dev

server {

server_name apidev.muzieonline.com.br;

access_log /var/log/nginx/apidev-pab.log;
error_log /var/log/nginx/apidev-pab.log;

location /webhookpix {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass http://127.0.0.1:8080;
}

location / {
proxy_pass http://127.0.0.1:8080;
}

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/apidev.muzieonline.com.br/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/apidev.muzieonline.com.br/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_client_certificate /home/ubuntu/muzie-api/certs/chain-pix-sandbox.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
}
server {
if ($host = apidev.muzieonline.com.br) {
return 301 https://$host$request_uri;
} # managed by Certbot


listen 80;
listen [::]:80;

server_name apidev.muzieonline.com.br;
return 404; # managed by Certbot


}

Avatar discord do usuario rubenskuhl

rubenskuhl

O payload assinado só diz que uma cobrança foi emitida. Ele está disponível no parâmetro location que é retornado pela cobrança.

Avatar discord do usuario relixes

relixes

{'calendario': {'criacao': '2022-09-01T22:31:08.000Z', 'expiracao': 90}, 'txid': 'f1be420f8e974edfa428bc6fda0221a6', 'revisao': 0, 'loc': {'id': 258, 'location': 'qrcodes-pix.gerencianet.com.br/v2/c2a55a0df8164355a64cc50215fd281b', 'tipoCob': 'cob', 'criacao': '2022-09-01T22:31:08.000Z'}, 'location': 'qrcodes-pix.gerencianet.com.br/v2/c2a55a0df8164355a64cc50215fd281b', 'status': 'ATIVA', 'valor': {'original': '0.03'}, 'chave': 'e2eb377c-3759-4bee-a402-fb78f87ddd3d', 'solicitacaoPagador': 'Cobrança dos serviços prestados.'}

Avatar discord do usuario relixes

relixes

{'calendario': {'criacao': '2022-08-27T14:50:49.703Z', 'expiracao': 3600}, 'txid': '29c7ae05c77b4d7d9f0f78a9169912ba', 'revisao': 0, 'loc': {'id': 3, 'location': 'qrcodes-pix-h.gerencianet.com.br/v2/03b42cd1be594c9cbedc98685e14141f', 'tipoCob': 'cob', 'criacao': '2022-08-27T14:50:49.747Z'}, 'location': 'qrcodes-pix-h.gerencianet.com.br/v2/03b42cd1be594c9cbedc98685e14141f', 'status': 'ATIVA', 'valor': {'original': '0.01'}, 'chave': '[email protected]', 'solicitacaoPagador': 'Cobrança dos serviços prestados.'}

Avatar discord do usuario relixes

relixes

curl --location --request POST 'https://api-pix.gerencianet.com.br/oauth/token' \
--header 'x-client-cert-pem: {{X-Certificate-Pem}}' \
--data-raw '{
"grant_type": "client_credentials"
}'

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Esse mesmo. Veja a mensagem tentando acessar o location:
{"nome":"cobranca_expirada","mensagem":"A cobrança expirou"}

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, mas a chave aleatória é a mais interessante para uso com /cob. Aí não tem risco de alguém pedir portabilidade e seus location pararem de funcionar.

Avatar discord do usuario rubenskuhl

rubenskuhl

O qrcode aí é o texto que pode ser colado direto pelo cliente no app de banco. Notar que contém o location, mas não é só o location.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Precisa gerar o BRCode a partir do location. Se colocar só o locaotion, não funciona.

Avatar discord do usuario lordvitao

lordvitao

Ver Respostas

se eu utilizar o location da cob, funcionaria?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Você pode gerar usar o location para gerar o copia e cola, ou usar o endpoint da GN (não padrão) para gerar para você.

Avatar discord do usuario lordvitao

lordvitao

utilizo a location?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

E quem é o principal ofensor desses 2s, o /cob ou /location/qrcode ?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Ao criar a cobrança vem também um id de location. Com o id, você pode acessar este endpoint:
https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-gerar-qrcode-de-um-location

Porém, o ideal seria você usar uma biblioteca própria de BRCode/EMV/QRCode e não depender desse endpoint.

Avatar discord do usuario renanmaia

renanmaia

[loc] => Array
(
[id] => 6
[location] => qrcodes-pix.gerencianet.com.br/v2/680dec36785d43a984a7223c5a623e93
[tipoCob] => cob
[criacao] => 2022-07-19T17:31:37.000Z
)