Histórico de mensagens sobre certificado em pix

EXIBINDO CONVERSAS RECENTES:

Texto: certificado
Canal: pix
Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

"certificado" => "/etc/certs-gerencianet/olimppiuspix.crt.pem"

Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

O certificado que estou utilizando é o de homologação mesmo. Ou seja to testando tudo primeiro como homologação, pra depois fazer no de produção.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Em API não precisa necessariamente aparecer nada na tela, ela é JSON vai e JSON volta, não HTML. O certificado que você está usando é o de produção ? Pq a rota é de homologação, que precisa do certificado de homologação.

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 roguitar88

roguitar88

Ver Respostas

A parte do certificado eu já gerei. Agora qual o próximo passo?

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 elsonlima0580

elsonlima0580

no modelo citado nem pede chave, pede somente certificado , client_secret e id

Avatar discord do usuario elsonlima0580

elsonlima0580

{
"sandbox": false,
"chave": "27920008182",
"recebedor": "suainscricao.com",
"homologacao": {
"nome_certificado": "certificado.pem",
"client_id": "Client_Id...",
"client_secret": "Client_Secret...",
"pix_url_auth": "https://api-pix-h.gerencianet.com.br/oauth/token",
"pix_url_cob": "https://api-pix-h.gerencianet.com.br/v2/cob",
"pix_url": "https://api-pix-h.gerencianet.com.br/v2/pix"
},
"producao": {
"nome_certificado": "certificado.pem",
"client_id": "id aqui",
"client_secret": "Client_Secret_aqui",
"pix_url_auth": "https://api-pix.gerencianet.com.br/oauth/token",
"pix_url_cob": "https://api-pix.gerencianet.com.br/v2/cob",
"pix_url": "https://api-pix.gerencianet.com.br/v2/pix"
}
}

Avatar discord do usuario jessica_efi

jessica_efi

Certo... você inseriu o certificado, e inseriu as credenciais e a url de acordo com o ambiente em que foi gerado o seu certificado?

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

ro.dri.go.sil.va

Ver Respostas

Apache e tenho um droplet na digitalocean, já peguei a chave da GN e também os certificados e configurei no VirtualHost

Avatar discord do usuario sady_efi

sady_efi

Ver Respostas

Todas as requisições pros serviços Pix tem de conter o certificado

Avatar discord do usuario placa_preta

placa_preta

pode ser isso então. estou anexando o certificado só na requisição pra obter o token. e nas outras requisições só estou passando esse token obtido header authorization

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O que eu entendo do padrão do BACEN é que todas as requisições precisem do certificado.

Avatar discord do usuario placa_preta

placa_preta

Ver Respostas

Vou dar uma olhada qual versão estou usando. Esse endpoint pra obter o Token consegui acessar de boa. Estou com dificuldade de acessar as outras apis? É preciso anexar o certificado em todas elas ou só na que obtem o token mesmo?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Também do <@!781928420757864468> :
// modelo funcional
public void GerarTokenGN(string client_id, string client_secret)
{
// força o uso do protocolo TLS, caso o protocolo padrão seja SSL ou outro protocolo
//ServicePointManager.Expect100Continue = true;
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;

X509Certificate2 uidCert = new X509Certificate2("NOME_DO_CERTIFICADO.p12", "");
var client = new RestSharp.RestClient("https://api-pix-h.gerencianet.com.br/oauth/token");
client.ClientCertificates = new X509CertificateCollection() { uidCert };
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic " + System.Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", client_id, client_secret))));
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\"grant_type\":\"client_credentials\",\"client_id\":\"" + client_id + "\",\"client_secret\":\"" + client_secret + "\"}", ParameterType.RequestBody);
IRestResponse restResponse = client.Execute(request);
string response = restResponse.Content;

Console.WriteLine(response);
}

Avatar discord do usuario brunodelara

brunodelara

não tem problema, inclusive já tentei, com e sem, o apache bloqueia a requisição porque, segundo ele, o certificado enviado não bate com o pedido

Avatar discord do usuario guilherme_eyhe3189

guilherme_eyhe3189

nao criei nenhuma senha ao criar o certificado

Avatar discord do usuario guilherme_eyhe3189

guilherme_eyhe3189

fui converter o certificado usando o openssl.exe e me pediu uma senha do certificado

Avatar discord do usuario guilherme_eyhe3189

guilherme_eyhe3189

Ver Respostas

Pessoal, eu nao tenho linux, como eu poderia converter o certificado ?

Avatar discord do usuario fabio.goncalves

fabio.goncalves

Ver Respostas

Segue a função que eu estou usando para criar a cobrança Pix em Node. A função recebe o token do OAuth como parâmetro. Troque o nome do arquivo do certificado ".p12" (linha 31) e a chave do recebedor (linha 25).
775328670784159744/1721239757024message.txt