Histórico de mensagens sobre certificado em pix

EXIBINDO CONVERSAS RECENTES:

Texto: certificado
Data: 26/09/2024
Canal: pix
Avatar discord do usuario daviqsh

daviqsh

Ver Respostas

//Desenvolvido pela Consultoria Técnica da Efí

"use strict";
const https = require("https");
var axios = require("axios");
var fs = require("fs");

//Insira o caminho de seu certificado .p12 dentro de seu projeto
var certificado = fs.readFileSync("./certs/SorteioCabelo_hml_cert.pem");

//Insira os valores de suas credenciais em desenvolvimento do pix
var credenciais = {
client_id: process.env.CLIENT_ID_HML,
client_secret: process.env.CLIENT_SECRET_HML,
};


var data = JSON.stringify({ grant_type: "client_credentials" });
var data_credentials = credenciais.client_id + ":" + credenciais.client_secret;

// Codificando as credenciais em base64
var auth = Buffer.from(data_credentials).toString("base64");

const agent = new https.Agent({
cert: certificado,
passphrase: '',
});

//Consumo em desenvolvimento da rota post oauth/token
const config = {
method: "POST",
url: "https://pix-h.api.efipay.com.br/oauth/token",
headers: {
Authorization: "Basic " + auth,
"Content-Type": "application/json"
},
httpsAgent: agent,
data: data,
};

axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @daviqsh! O que o Rubens quis dizer é que, depois de obter o access_token, nas próximas requisições você deve enviar o access_token e continuar usando o certificado, sem precisar incluir o client_id e o client_secret.
Você já conseguiu obter o access_token? Como está montando a requisição?

Avatar discord do usuario daviqsh

daviqsh

Ver Respostas

Acho que não entendi bem, esses parâmetros estão como variáveis de ambiente, estou no processo de obter o access_token, e o certificado está correto com a extensão .pem, se eu retirar esses parâmetros como ele vai fazer a autenticação e retornar o access_token?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Só retire do código parâmetros de autenticação como clientid/clientsecret.

De qualquer forma, a mensagem de erro é sugestiva de você não estar enviando o certificado nas requisições para a API... o certificado é necessário em todas as requisições, não só a de obtenção do token de autenticação.