Histórico de mensagens sobre Secret id em pix

EXIBINDO CONVERSAS RECENTES:

Texto: Secret id
Canal: pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Mas se você tiver o clientid, clientsecret e certificado, você mesmo pode fazer as requisições usando curl em linha de comando, já que o desenvolvedor do sistema não está conseguindo fazer. O que precisa estar claro para você é de quem é a responsabilidade, pois o recurso está aí para ser usado e atende sua demanda.

Avatar discord do usuario alipiopereira

alipiopereira

Ver Respostas

export default {
sandbox: false,
client_id: process.env.CLIENT_ID as string,
client_secret: process.env.CLIENT_SECRET as string,
certificate: "certificado.p12",
validateMtls: false,
};

Avatar discord do usuario ananiaslima

ananiaslima

Ver Respostas

Alguém pode me ajudar numa dúvida bem básica. Para fazer consultas usando a API pix, tenho um client-id um client-secret um certificado gero um token de consulta. Esse token permite consultas apenas a conta que gerou o certificado ou posso consultar qualquer chave Pix/identificador?

Avatar discord do usuario alipiopereira

alipiopereira

Meu código: const https = require("https");
var axios = require("axios");
var fs = require("fs-extra");

const express = require("express");
const router = express.Router();

router.post("/", (req, res) => {
//Insira o caminho de seu certificado .p12 dentro de seu projeto
var certificado = fs.readFileSync(
"./.p12"
);

//Insira os valores de suas credenciais em desenvolvimento do pix
var credenciais = {
client_id: "
",
client_secret: "",
};

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({
pfx: certificado,
passphrase: "",
});
//Consumo em desenvolvimento da rota post oauth/token
var config = {
method: "POST",
url: "https://pix.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));
return res.json({ data: response });
})
.catch(function (error) {
console.log(error);
return res.json({ error: error });
});
});

module.exports = router;

Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Boa tarde @leonardo_91905 ! Tudo bem? A falha Unauthorized refere-se a credenciais inválidas. Verifique se está utilizando credencias corretas (Client_Id e Client_Secret) e certificado para o ambiente definido. Você está utilizando algum de nossos plugins?

Avatar discord do usuario he128

he128

Ver Respostas

//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 .viniciusc

.viniciusc

java
public static Token authorizeToken(String client_id, String client_secret, byte[] certificateBytes) {
Token token = null;
String basicAuth;
try {
System.out.println(certificateBytes.length);
basicAuth = Base64.getEncoder().encodeToString((client_id + ':' + client_secret).getBytes());

File tempFile = File.createTempFile("certificate", ".p12");
tempFile.deleteOnExit();

try (FileOutputStream fos = new FileOutputStream(tempFile)) {
fos.write(certificateBytes);
}

System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", tempFile.getAbsolutePath());

SSLSocketFactory sslSocketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();

URL url = new URL("https://api-pix-h.gerencianet.com.br/oauth/token");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Basic " + basicAuth);
conn.setSSLSocketFactory(sslSocketFactory);
String input = "{\"grant_type\": \"client_credentials\"}";

OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();

Avatar discord do usuario .viniciusc

.viniciusc

Ver Respostas

Bom dia! Alguém aqui já conseguiu implementar a API PIX da Efí utilizando o Java + Spring Boot com algum serviço de Cloud?

Já fazem alguns meses que tento implementar a API mas sempre tenho problemas de instabilidade, onde, depois de gerar um token de acesso, a aplicação spring continua funcionando normalmente e depois de 10 minutos começa a ter problema de conexão com a base de dados.

No caso do serviço de cloud estou usando a AWS e o RDS com o MySQL.

Falo da base de dados mas utilizei dados localmente (client_id, secret e certificado .p12 localmente e a requisição de teste foi nenhuma conexão com o banco) e mesmo assim da erro de conexão com a base de dados.

Já fazem vários meses que estou tento esse problema e gostaria de saber se alguém ja implementou a API nessas condições ou se alguém já teve algum problema parecido.

Se alguém puder respondei ficarei profundamente grato!

O trecho de código em questão:

Avatar discord do usuario igor_efi

igor_efi

@espartano9720, bom dia!
Antes de você utilizar este endpoint, você precisa autenticar na API informando o client_id e client_secret do jeito que você esta fazendo.
Na autenticação, vai ser retornado para você o access token, que você deverá utilizar nos demais endpoints.

Segue o exemplo em Python de autenticação:

py
#Desenvolvido pela Consultoria Técnica da Efí

import requests
import base64

credentials = {
"client_id": "YOUR-CLIENT-ID",
"client_secret": "YOUR-CLIENT-SECRET",
}

certificado = './certificado.pem' # A variável certificado é o diretório em que seu certificado em formato .pem deve ser inserido

auth = base64.b64encode(
(f"{credentials['client_id']}:{credentials['client_secret']}"
).encode()).decode()

url = "https://pix.api.efipay.com.br/oauth/token"

payload="{\r\n \"grant_type\": \"client_credentials\"\r\n}"
headers = {
'Authorization': f"Basic {auth}",
'Content-Type': 'application/json'
}

response = requests.request("POST",
url,
headers=headers,
data=payload,
cert=certificado)

print(response.text)

Avatar discord do usuario mejulgue

mejulgue

Olá, boa tarde, estou com uma tremenda dificuldade em ativar o Pix com a minha loja, é a primeira vez que realizo esse procedimento então estou bem perdido, a empresa que me fornece os sistemas de TEF e pinpad é a Martins e a Única, só que não consigo liberar a forma de pagamento via Pix por QR Code, a Martins me pede três dados, uma chave do banco e dois arquivos chamados client_secret e client_id, e não sei nem por onde começar.
Alguém consegue me dar uma luz ?

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);

Avatar discord do usuario jaimepremy

jaimepremy

Ver Respostas

Boa noite pessoal, estou tentando a integração do pix num aplicativo asp.net. Estou conseguindo fazer a autenticação e recebo um objeto response com token, scope etc. Mas tentando uma cobrança imediata com txid, seguindo o exemplo que está na documentação do postman me deparo com request.AddHeader("authorization", {{Authorization}}"). Como eu passo o response que recebi na autenticação neste header? Tentei passar o response (string) todo aqui, mas recebo um "invalid_client" . O sdk .Net que a efi disponibiliza no github só serve para .Net Core, mas o meu app é framework 461, então não tem como usar. Tem um sdk net framework antigo lá no Github, mas sem nada relacionado ao Pix. Também tentei: request.AddHeader("Authorization", "Basic " & System.Convert.ToBase64String(Encoding.ASCII.GetBytes(String.Format("{0}:{1}", client_id, client_secret)))), mas tbm dá "invalid_client". Fvr alguém que já implemtou diretamente no .net poderia me ajudar?

Avatar discord do usuario giulianojordao

giulianojordao

Estou enviando os dados de options... let options = {
sandbox: (process.env.API_MODE !== 'PROD') ? true : false,
client_id: (process.env.API_MODE === 'PROD') ? process.env.EFI_PROD_CLIENT_ID : process.env.EFI_HOMOL_CLIENT_ID,
client_secret: (process.env.API_MODE === 'PROD') ? process.env.EFI_PROD_SECRET : process.env.EFI_HOMOL_SECRET,
certificate: certificado,
validateMtls: false,
};

Avatar discord do usuario bernardocollet_36741

bernardocollet_36741

Ver Respostas

$config = [
"certificado" => __DIR__."/arquivo.pem",
"client_id" => "CLIENTEID",
"client_secret" => "CLIENTESECRET"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://pix.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"],
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
print_r($response);

Avatar discord do usuario lucasjuliano.

lucasjuliano.

Ver Respostas

Estou tentando fazer uma autenticação, estou passando o certificado de HMG, ClientId, SecretId e estou recebendo erro 500. Porém não tem detalhes na mensagem de resposta.
imagem enviada na mensagem pelo usuario lucasjuliano.

Avatar discord do usuario fabiosql

fabiosql

Ver Respostas

Pessoal bom dia! se alguém puder me ajudar eu agradeço,
fiz a integração do pix com a efí, (php sdk)
1) a aplicação está no ambiente de produção
2) estou utilizando a chave/certificate/client_id/client_secret de produção
3) já até configurei o callback do webhook
4) expiracao = 3600 e dados do 'devedor" reais

Ao gerar o QR CODE, ele me retorna o copia e cola normalmente, mas ao tentar pagar aparece o erro do app dos bancos:
"QR Code inválidoo"
imagem enviada na mensagem pelo usuario fabiosql
imagem enviada na mensagem pelo usuario fabiosql

Avatar discord do usuario williampereira3343

williampereira3343

Geramos o Client_Id e o Client_Secret, ao fazer teste via postman, está apresentando que o usuário está invalido ou inativo
imagem enviada na mensagem pelo usuario williampereira3343