Histórico de mensagens sobre Secret id

EXIBINDO CONVERSAS RECENTES:

Texto: Secret id
# pix
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,
};

# devs
Avatar discord do usuario adilalima

adilalima

Ver Respostas

Bom dia, outra questão. É normal não conseguir gerar o token do cartão de crédito em modo sandbox? Estou usando a SDK Flutter, em produção o token é gerado normalmente, mas em sandbox ele retorna 404 Not Found, já conferi client_id e client_secret_id estão corretos. Agradeço desde já 😄

# devs
Avatar discord do usuario lemos.eth

lemos.eth

Ver Respostas

Uma chave client id e client secret ficam validas mesmo após eu apagar a aplicação? se sim, tem alguma forma em que eu possa "cancelar" elas

# devs
Avatar discord do usuario lemos.eth

lemos.eth

Ver Respostas

Bom dia, tem algum problema em relação a segurança caso eu suba o projeto no github com o certificado p.12? No caso é um repositório publico e eu já protegi as keys client id e client secret, mas fiquei na duvida se eu subir o codigo e deixar o certificado lá visivel a todos, alguém possa pegar algum tipo de informação e etc

# devs
Avatar discord do usuario adilalima

adilalima

Ver Respostas

Boa tarde, referente a essas credenciais na SDK Flutter:

Map credentials = {
'client_id': '',
'client_secret': '',
'account_id': '',
'sandbox': false,
'certificate': '',
'private_key': ''
};

'account_id' é o número da conta? se sim, apenas números (0000000) ou com traço (000000-0)?
'private_key' é exatamente o quê?

agradeço desde já 😄

https://github.com/efipay/sdk-dart-apis-efi/blob/main/example/credentials.dart

# dúvidas
Avatar discord do usuario caelgoncalves

caelgoncalves

Ver Respostas

Boa tarde, está acontecendo alguma instabilidade no endpoint de autenticação https://cobrancas-h.api.efipay.com.br/v1/authorize ? estou usando a GN API SDK JAVA e desde ontem durante o dia da problema de Client_Secret e Client_Id. Porém após um tempo de espera volta tudo ao normal. Hoje tava dando problema pela manhã e sem nenhuma alteração voltou a funcionar agora pela tarde

# devs
Avatar discord do usuario irineumarques

irineumarques

Eu estou importando desta maneira:

use Efí\Efí;

Este é o meu método para atualizar o
status
no banco de dados:

public function notification(Request $request) {
try {
$efiEnviroment = env('EFI_ENVIROMENT') === 'sandbox' ? true : false;

$options = [
'client_id' => env('EFI_CLIENT_ID'),
'client_secret' => env('EFI_CLIENT_SECRET'),
'sandbox' => $efiEnviroment
];

$token = $request->notification;

Log::info("Token de notification: $token");

$params = [
'token' => $token
];

$api = new Efí($options);
$chargeNotification = $api->getNotification($params, []);

// Conta o tamanho do array data (que armazena o resultado)
$i = count($chargeNotification["data"]);
// Pega o último Object chargeStatus
$ultimoStatus = $chargeNotification["data"][$i-1];
// Acessando o array Status
$status = $ultimoStatus["status"];
// Obtendo o ID da transação
$charge_id = $ultimoStatus["identifiers"]["charge_id"];
// Obtendo a String do status atual

$current_status = $status["current"];
$previous_status = $status["previous"];

$payment = Payment::where('charge_id', $charge_id)->first();

$payment->update([
'status' => $current_status
]);

Log::info("Status anterior: $previous_status . Status atual: $current_status");

return response()->json([
'status' => 'success',
'message' => 'Pagamento processado com sucesso.',
'data' => $payment,
], 200);


} catch (\Exception $e) {
$error_message = $e->getMessage() ? $e->getMessage() : $e;
Log::error($error_message);
return response()->json(['error', $error_message], 500);
}
}

# pix
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?

# devs
Avatar discord do usuario eraldocarlosfh

eraldocarlosfh

Ver Respostas

//Caminho onde está meu certificado
private readonly _certificate = Path.GetFullPath("Certs\cert_prod.p12");

Bom dia pessoal, estou efetuando a integração da API de Pix na plataforma .NET, estou com uma dificuldade ao criar a instância EfiPay segue abaixo minha dúvida.

dynamic efi = new EfiPay(_client_id, _client_secret, false, _certificate);

Quando efetuo o teste local consigo ler sem problemas o caminho do certificado, porém ao enviar para produção perco a referência do caminho, meu back está publicado no Azure não está em um servidor está publicando como App Service - Web App.

Poderiam me dar uma luz 🙏 ?

# dúvidas
Avatar discord do usuario gabriel_efi

gabriel_efi

Em Node por exemplo, temos o seguinte exemplo:

"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("./certificado.p12");

//Insira os valores de suas credenciais em desenvolvimento do pix
var credenciais = {
client_id: "YOUR-CLIENT-ID",
client_secret: "YOUR-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));
})
.catch(function (error) {
console.log(error);
});

# pix
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;

# pix
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?

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

# pix
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();

# pix
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:

# cartões
Avatar discord do usuario rafaelhenrique10101

rafaelhenrique10101

estpu usando o endpoint de cobranças, inicialmente eu estava utilzando o client_id e o secret_id de PROD, mas depois mudei para o de hml, e mesmo assim deu erro

# pix
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)

# dúvidas
Avatar discord do usuario assiscabron

assiscabron

Posso mandar meu código sem o Secret aqui para você dar uma olhada ? Ele fala que o token ta invalido, se eu uso o -h ele fala que o Secret n é valido@

# dúvidas
Avatar discord do usuario assiscabron

assiscabron

Ver Respostas

Client_secret e o client_id ta definido ali onde eu borrei, o certificado tbm e tem uma const auth que uso no “Authorization” da api, porém te retornando “token inválido”
imagem enviada na mensagem pelo usuario assiscabron