Histórico de mensagens em dúvidas

EXIBINDO CONVERSAS RECENTES:

Canal: dúvidas
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@luizfeleal uma coisa que pode estar ocasionando a falha é o caso o caminho do certificado esteja incorreto, verifique se o arquivo esta de fato sendo encontrado.

Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

Eu tenho um código em php que faz isso, e também já testei utilizando o conversor de vocês, mas o mesmo erro é retornado

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@luizfeleal verifiquei aqui e o arquivo é .pem mesmo. Como você fez a conversão do arquivo para .pem?

Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

recebi esse erro com o arquivo .p12:
Exception: could not load PEM client certificate from /projeto_maquina_api/storage/app/Certificados/certificate12.p12, OpenSSL error error:0480006C:PEM routines::no start line, (no key found, wrong pass phrase, in file /projeto_maquina_api/app/Services/Efi/AuthService.php on line 62

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@luizfeleal tente fazer com o arquivo .p12, por favor.

Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

Agora o erro retornado é esse:
Exception: unable to set private key file: '/projeto_maquina_api/storage/app/Certificados/certificate12.pem' type PEM in file /projeto_maquina_api/app/Services/Efi/AuthService.php on line 59

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@luizfeleal existem algumas falha em como você montou a requisição, segue um exemplo de como fazer a autenticação:

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 "
";
?>

Avatar discord do usuario luizfeleal

luizfeleal

Converti o certificado de .p12 para .pem, e envio na requisição.

Avatar discord do usuario luizfeleal

luizfeleal

Estou fazendo dessa forma

Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

$credenciaisBase64 = base64_encode($cliente_id . ":" . $client_secret);

$url = env('URL_EFI') . "/oauth/token";

// Inicializa a sessão cURL
$ch = curl_init();


curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // Verifica o certificado do servidor
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // Verifica o host do certificado
curl_setopt($ch, CURLOPT_SSLCERT, $certificado); // Define o certificado a ser usado


// Adiciona os dados do cliente como autenticação básica
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
"Authorization: Basic " . $credenciaisBase64

]);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'grant_type' => 'client_credentials',
]));

// Executa a requisição e obtém a resposta
$resposta = curl_exec($ch);

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @luizfeleal, tudo bem?
Como você esta fazendo a requisição?

Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

Olá, bom dia! Estou tendo um erro ao tentar enviar uma requisição para me autenticar com a API. O erro é o seguinte:
Exception: OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0 in file.
Conseguem me ajudar?

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Respondido no privado.

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Respondido no canal <#❖pix> !

Avatar discord do usuario caixa2fuzil

caixa2fuzil

Ver Respostas

alguem para me ajudar?

Avatar discord do usuario bielwqi

bielwqi

Ver Respostas

Tenho um bot em python onde minha verificao de pix esta dando o erro

string indices must be integers, not 'str'
imagem enviada na mensagem pelo usuario bielwqi

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Aplicativo vale tanto mobile quanto site... é só para diferenciar de Pix via API, que aí (se permitido na sua conta) tem tarifa.

Avatar discord do usuario patolas_

patolas_

Ver Respostas

Certo, obrigado

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, é sem tarifa também, se feito via aplicativo.
(Enquanto TED de titularidade diferente sempre custa R$5 independente do valor)

Avatar discord do usuario patolas_

patolas_

Ver Respostas

se for pix para outra pessoa é sem tarifa também?