Histórico de mensagens sobre location

EXIBINDO CONVERSAS RECENTES:

Texto: location
# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver Respostas

Boa tarde. Estou tentando fazer a integração via pix completa com PHP (gerar token, venda, gerar qrcode e notificação de status). Porém ate agora não consegui ter sucesso. Eu gerei o token, gerei a venda via pix que me retorna um location. Porém agora o próximo passo seria gerar o QR code visual para o cliente escanear ou o numero para copiar e colar para pagamento. Para gerar a venda estou fazendo uma requisição via POST para https://pix-h.api.efipay.com.br/v2/cob. Nela me retorna sucesso e um txid e o location. Como faria para prosseguir e gerar o qr code? Quando acesso o link do location, diz que "A cobrança não está mais com o status ATIVA"}" Mesmo eu gerando naquele mesmo segundo e indo consultar.

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

to mandando assim: curl_setopt_array($curl, array(
CURLOPT_URL => "https://pix-h.api.efipay.com.br/v2/cob", // 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 => $data,
CURLOPT_SSLCERT => $config["certificado"],
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $token",
"Content-Type: application/json"
),
));

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia @alexandrerod50, temos sim, segue o exemplo:

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;
}
proxy_pass /webhook;
}
}
#Desenvolvido pela Consultoria Técnica da Efí

# módulos-plugins
Avatar discord do usuario junglivre

junglivre

update: habilitei todos os scopes possíveis e agora deu o erro:
Efí Exception: Error 400: Nenhum location encontrado para o identificador informado: Nenhum location encontrado para o identificador informado

# pix
Avatar discord do usuario wesleysnap

wesleysnap

Ver Respostas

O copia e cola não está no padrão o BCB. Estou analizando a criação do location do payload. Obrigado

# devs
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

# #
# Utilize o segundo exemplo, caso queira requerir o certificado para autenticação #
# mútua em apenas uma rota do domínio indicado no VirtualHost. #
# Exemplo: https://www.seu_dominio.com.br/webhook/ #
# #


:443> # Porta HTTPS
#
# ...
#

SSLCertificateFile /caminho_certificado/fullchain_ssl.pem #fullchain associado ao seu certificado SSL do domínio
SSLCertificateKeyFile /caminho_certificado/privkey_ssl.pem #privkey associada ao seu certificado SSL do domínio

#Chave pública da Efí
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

# mTLS Efí
SSLVerifyClient none
SSLProtocol TLSv1.2


SSLVerifyClient require
SSLVerifyDepth 3


# Tratando o /pix, redirecionando as requisições sempre para /webhook
Alias "/webhook/pix/" "/var/www/webhook/index.php"
Alias "/webhook/pix" "/var/www/webhook/index.php"

#
# ...
#

# freelancer
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Bom dia, @evert0n! Você esta tentando autenticar?
Poderia testar este código abaixo:

php
//Desenvolvido pela Consultoria Técnica da Efí
$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://pix-h.api.efipay.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 "
";
?>

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Pega o loc.id que o /cob retorna e faz um GET no /location. Lá vem o campo qrCode que é o Pix-Copia-e-Cola.

# dúvidas
Avatar discord do usuario gabriel_efi

gabriel_efi

mas você pode acessar diretamente o location de fora do objeto loc

# dúvidas
Avatar discord do usuario jeanlucafp

jeanlucafp

Ver Respostas

boa noite, tenho algumas duvidas que nao encontrei na documentacao sobre cobrancas imediatas qrcodes-pix.gerencianet.com.br/9d36b84f-c70b-478f-b95c-12729b90ca25 na resposta vem 2 locations, um dentro do objeto "loc" e outro fora, qual a diferenca entre os dois?

# pix
Avatar discord do usuario alissonmaciel_32335

alissonmaciel_32335

$config = [
"certificado" => ($sandbox) ? $pathCertificateHomolog : $pathCertificateProd,
"client_id" => ($sandbox) ? $clientIdHomolog : $clientIdProd,
"client_secret" => ($sandbox) ? $clientSecretHomolog : $clientSecretProd,
"rotas" => ($sandbox) ? $rotasHomolog : $rotasProd
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . '/errorlog.txt', 'w');

curl_setopt_array($curl, array(
CURLOPT_VERBOSE => true,
CURLOPT_STDERR => $fp,
CURLOPT_URL => $config['rotas'] . "/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);

echo '

';
var_dump($config, $response);
echo '
';

curl_close($curl);

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Tem que pegar o loc.id e fazer um GET em /location

Ou usar uma biblioteca de EMV para montar o copia-e-cola e o QR-Code a partir do location.

# pix
Avatar discord do usuario d10web.com

d10web.com

Ver Respostas

Esse é o retorno sucesso da requisão: Criar cobrança imediata (sem txid)

{
"calendario": {
"criacao": "2020-09-09T20:15:00.358Z",
"expiracao": 3600
},
"txid": "7978c0c97ea847e78e8849634473c1f1",
"revisao": 0,
"loc": {
"id": 789,
"location": "pix.example.com/qr/v2/9d36b84fc70b478fb95c12729b90ca25",
"tipoCob": "cob"
},
"location": "pix.example.com/qr/v2/9d36b84fc70b478fb95c12729b90ca25",
"status": "ATIVA",
"devedor": {
"cnpj": "12345678000195",
"nome": "Empresa de Serviços SA"
},
"valor": {
"original": "567.89"
},
"chave": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",
"solicitacaoPagador": "Informar cartão fidelidade"
}

Onde encontro o qrcode e copia e cola da cobrança pix?

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Oi, @tacsistemas. Bom dia!
Qual SDK você está utilizando?

Para obter o Qr Code, após ter criado a cobrança basta consumir o endpoint GET/v2/loc/:id/qrcode, método pixGenerateQRCode das SDKs, passando o id do loc como parâmetro que você terá o seguinte retorno:
{
"qrcode": "00020126001BR.GOV.BCB.PIX2566qrcodes-pix.ger...",
"imagemQrcode": "data:image/png;base64,iVBORw0KGgoAAQDS... "
}

Deste retorno, o parâmetro qrcode é o pix copia e cola, e parâmetro imagemQrcode é a imagem do QrCode em base64. que pode ser implementado em seus sites.

# pix
Avatar discord do usuario tacsistemas

tacsistemas

Na url mais recente da EFI o qrcode é o "location"?
Houve alguma mudança na sdk em relação a gerar o qrcode? por que estou tentando gerar da mesma forma porem nao gera um qrcode valido estando em produção

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Mesmo no dinâmico você poderia usar a API só para criar o location e gerar uma imagem de pagamento no formato que você quiser.

# devs
Avatar discord do usuario yasmin_efi

yasmin_efi

Ver Respostas

O que daria para fazer seria manter um mesmo QRcode e dessasociar e associar novas cobranças, por meio dos endpoints de desvincular txid de location e alterar cobrança pix

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Ah, acho que você se refere ao loc.id, o id do location. Não, não tem como pesquisar pelo loc.id nem no /pix nem no /cob.