Histórico de mensagens sobre Client_ID

EXIBINDO CONVERSAS RECENTES:

Texto: Client_ID
# 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

# pix
Avatar discord do usuario fabioturnes

fabioturnes

Ver Respostas

Olá, alguém tem o link que explica onde encontrar o Client ID e o Cliente Secrete para uma API de pagamento via PIX para um site de vendas online

# 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 eduardoespindola

eduardoespindola

Bom dia,
estamos utilizando o sdk JAVA e ao tentarmos acessar a função PayListPayments()
estamos recebendo essa mensagem de erro:
org.json.JSONException: JSONObject["APIs"] not found

O que pode ser? Alguém sabe ou já passou por isso?

Segue o código:
try {
JSONObject options = new JSONObject();
options.put("client_id", client_id);
options.put("client_secret", client_secret);
options.put("certificate", nmCert);
options.put("sandbox", false);

HashMap params = new HashMap();
params.put("dataInicio", "2023-12-01");
params.put("dataFim", "2023-12-31");
System.out.println("options: " + options.toString());
System.out.println("params: " + params.toString());
try {
EfiPay efi = new EfiPay(options);
JSONObject response = efi.call("payListPayments", params, new JSONObject());
System.out.println(response);
} catch (EfiPayException e) {
System.out.println(e.getCode());
System.out.println(e.getError());
System.out.println(e.getErrorDescription());
}

} catch (Exception e) {
System.out.println("Ocorreu o seguinte erro: " + e.toString());
}

Obrigado.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Oi, @theboss8142. Boa tarde. Espero que esteja bem!
Exatamente, Rubens. É importante que nestas plataformas você consiga subir o certificado para usar a API Pix, além do Client_id e do Cliente_Secret.

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

# dúvidas
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Boa tarde @abaldiotti ! Nós não podemos fazer a integração pra você, mas auxiliamos no que for preciso sobre as informações da sua conta, como por exemplo criar uma aplicação para obter as credenciais client_id e client_secret.

# 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 guilherme_efi

guilherme_efi

Ver Respostas

E este client_id e client_secret são de homologação?

# dúvidas
Avatar discord do usuario guilherme_efi

guilherme_efi

@adilalima, como vai?
Na SDK o parâmetro 'x-skip-mtls-checking' deve ser passado no array 'headers'. Assim:

php
$webhook = EfiPay::getInstance([
'client_id' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_ID : CONF_EFI_CLIENT_ID,
'client_secret' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_SECRET : CONF_EFI_CLIENT_SECRET,
'certificate' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_PIX_CERTIFICATE : CONF_EFI_PIX_CERTIFICATE,
'headers' => ['x-skip-mtls-checking' => "true"],
]);

# dúvidas
Avatar discord do usuario adilalima

adilalima

Opa, tudo ótimo e contigo?
Então, mesmo seguindo esse guia e fazendo (supostamente) igual acabo recebendo o mesmo erro de código 400 e de descrição "A autenticação de TLS mútuo não está configurada na URL informada":

public function config_webhook(array $data): void
{
$webhook = EfiPay::getInstance([
'client_id' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_ID : CONF_EFI_CLIENT_ID,
'client_secret' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_CLIENT_SECRET : CONF_EFI_CLIENT_SECRET,
'certificate' => CONF_EFI_SANDBOX ? CONF_EFI_DEV_PIX_CERTIFICATE : CONF_EFI_PIX_CERTIFICATE,
'x-skip-mtls-checking' => "true",
]);

$webhook = $webhook->pixConfigWebhook(
['chave' => CONF_EFI_PIX_KEY],
['webhookUrl' => CONF_EFI_PIX_WEBHOOK_URL]
);

$this->call(code: 200)->back(['data' => $data, 'headers' => $this->headers, 'webhook' => $webhook]);
}

É um comportamento esperado?

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

# dúvidas
Avatar discord do usuario douglasalves_27133

douglasalves_27133

Ver Respostas

Boa noite, posso adicionar conteúdo do arquivo do meu certificado diretamente no campo especificado, ao invés do caminho para o arquivo? (CREDENTIALS = {
'client_id': '',
'client_secret': '',
'sandbox': False,
'certificate': 'Salvo em BD'
}), meu certificado está salvo em banco de dados. e ao recupera-lo recebo o conteúdo do arquivo.

# 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 joaolucas_efi

joaolucas_efi

Bom dia @david_arlonne, a mensagem de Forbidden esta atrelada geralmente à credenciais incorretas, verifique se o par de chaves client id e client secret e seu certificado estão corretos e adequados ao valor de sandbox

# pix
Avatar discord do usuario leonardo_91905

leonardo_91905

Ver Respostas

Sim, estou usando o certificado e o client_id e client_secret da mesma conta. O que seria esse ''nossos plugins?'' se for sobre integração com sites não. Estou tentando vincular no meu sistema do IXC. Exclui as carteiras, recriei de novo e continua com erro.