Histórico de mensagens sobre url

EXIBINDO CONVERSAS RECENTES:

Texto: url
# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Atualmente não, @josneidrosdek.
Quando você usa o endpoint de iniciar pagamentos em homologação o seu redirect já é direto para sua URL, sugiro que faça alguns testes no ambiente de produção para verificar o fluxo.

# devs
Avatar discord do usuario charles_36784

charles_36784

Estou usando a Collection do Postman disponibilizada pela Efi. Não alterei nenhum attribute de nenhum request, exceto pelo client_id e client_secret com a url de homolog

# dúvidas
Avatar discord do usuario esdrasfyy

esdrasfyy

Ver Respostas

'pix_cert' => public_path('certs/certificate-chain-prod.crt'),

alguem que manja de php e efipay ai me da uma ajuda aqui, estou cadastrando o webhook e passando o pix_cet porem ta dando esse erro

"curl_setopt_array(): Cannot represent a stream of type Output as a STDIO FILE"

# pix
Avatar discord do usuario tellyscastro

tellyscastro

Ver Respostas

Realmente apontando a URL de Webhook para um arquivo estático deu certo.
imagem enviada na mensagem pelo usuario tellyscastro

# pix
Avatar discord do usuario tellyscastro

tellyscastro

Ver Respostas

Fala Marcelo, estou bem graças ao bom Deus, e cvc ?

No caso eu tenho uma re escrita de URL, haja visto q estou utilizando o sistema de rotas do Laravel. (Para o caso de uso de rotas laravel existe algum modelo?)

Então , a URL de Webhook precisa apontar para um arquivo estático? sem tratamento de rota?

# pix
Avatar discord do usuario marcelo_efi

marcelo_efi

Ver Respostas

Bom dia, @tellyscastro ! Tudo bem?

Não é possível cadastrar uma URL de Webhook que redirecione. Quando a API realiza os testes de validação do mTLS, ela já espera uma resposta imediata de sucesso ou falha. Você deve inserir a URL final da aplicação ou realizar o mTLS antes de qualquer redirecionamento.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Entendi. Para configurar a URL do webhook, é preciso usar um certificado publicamente válido, mesmo que seja gratuito, como o Let's Encrypt obtido pelo CertBot ou similar.

# pix
Avatar discord do usuario tellyscastro

tellyscastro

Ver Respostas

Erro ERR_BAD_SSL_CLIENT_AUTH_CERT

Bom dia turma!
Não consigo fazer o cadastro da url, esta retornando erro ERR_BAD_SSL_CLIENT_AUTH_CERT

Variáveis que estão sendo enviadas:
imagem enviada na mensagem pelo usuario tellyscastro

# pix
Avatar discord do usuario edsonpinheiro_

edsonpinheiro_

Ver Respostas

curl --location 'https://pix.api.efipay.com.br/v2/cob' \
--header 'Authorization: Bearer Token {token aqui} \
--header 'Content-Type: application/json' \
--data '{
"calendario": {
"expiracao": 3600
},
"valor": {
"original": "124.45"
},
"chave": "61982030380",
"solicitacaoPagador": "Informe o número ou identificador do pedido."
}'

# dúvidas
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 "
";
?>

# dúvidas
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);

# pix
Avatar discord do usuario gabriel_efi

gabriel_efi

Ver Respostas

no caso do CURL, pode ser enviado no array como CURLOPT_SSLCERT

# devs
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

É o que mencionei deles não terem extensibilidade. Uma plataforma concorrente tem até uma opção em que você passa URL de chamada, padrão de retorno e e integra automágico.

# módulos-plugins
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Estamos analisando se pode ser algo relacionado ao plugin ou à versão do php/cURL.

# pix
Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

$config = [
"certificado" => "./certificados/homologacao-certificado_cert.pem",
"client_id" => "???",
"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',
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"],
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

if(curl_errno($curl)) {
echo 'Erro no cURL: ' . curl_error($curl);
} else {
echo $response;
}

# pix
Avatar discord do usuario hiagosilvas

hiagosilvas

Ver Respostas

Envia o cURL ou a configuração realizada na SDK (ocultando credênciais Rodrigo). Talvez alguém ja tenha passado por isso e consiga te ajudar

# pix
Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

@guilherme_efi Parece que não está carregando o certificado, pode me ajudar a resolver?
"Erro no cURL: could not load PEM client certificate, OpenSSL error error:80000002:system library::No such file or directory, (no key found, wrong pass phrase, or wrong file format?)"

# pix
Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

Postman, deu certo agora.
Vou testar no CURL.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Esse mensagem você obteve na requisição com cURL ou no Postman?