Histórico de mensagens sobre credentials em pix

EXIBINDO CONVERSAS RECENTES:

Texto: credentials
Canal: 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 "
";
?>

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 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 espartano9720

espartano9720

Ver Respostas

olá pessoal, bom dia
espero que alguém possa me ajudar, agradeço desde já!
estou tentando obter os dados dos pix's recebidos atraves de um código python:

certificado = 'producao-xxxxxxxxxxcert.pem'

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

url = "https://pix.api.efipay.com.br/v2/pix?inicio=2023-11-14T15:00:00Z&fim=2023-11-15T15:59:59Z" #Para ambiente de Desenvolvimento

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 peterfritz

peterfritz

Algo assim funcionaria:

js
import axios from "axios";
import https from "https";

const subdomain = process.env.NODE_ENV === "production" ? "pix" : "pix-h";

const clientCreds = clientId + ":" + clientSecret;
const authorization = Basic ${Buffer.from(clientCreds).toString("base64")};

const certificate = Buffer.from(certificateBase64Encoded, "base64");

const httpsAgent = new https.Agent({
pfx: certificate,
passphrase: "",
});

const oAuthResponse = await axios.post(
https://${subdomain}.api.efipay.com.br/oauth/token,
{
grant_type: "client_credentials",
},
{
headers: {
Authorization: authorization,
"Content-Type": "application/json",
},
httpsAgent,
}
);

const token = oAuthResponse.data.access_token;

const efiApi = axios.create({
baseURL: https://${subdomain}.api.efipay.com.br,
headers: {
Authorization: Bearer ${token},
"Content-Type": "application/json",
},
httpsAgent,
});

await efiApi.put(
/v2/webhook/${process.env.PIX_KEY},
{
webhookUrl:
${process.env.WEBHOOK_BASE_URL}/api/webhook/efi?secret=${process.env.WEBHOOK_SECRET}&ignore=.replace(
"//api",
"/api"
),
},
{
headers: {
"x-skip-mtls-checking": "true",
},
}
);

Avatar discord do usuario blini_10032

blini_10032

a minha requisição de oauth tá assim:
const responseToken = await fetch(
"https://pix-h.api.efipay.com.br/oauth/token",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"x-skip-mtls-checking": "true",
},
body: JSON.stringify({ grant_type: "client_credentials" }),
}
);

Avatar discord do usuario johnlennon_46207

johnlennon_46207

INFO NOO.Comum.Logger 2023-11-01 09:50:58,471 - GerenciaNet PIX - ObterToken -> status code post: Unauthorized
INFO NOO.Comum.Logger 2023-11-01 09:50:58,471 - GerenciaNet PIX - ObterToken -> result: {"error":"invalid_client","error_description":"Invalid or inactive credentials"}

Avatar discord do usuario yasmin_efi

yasmin_efi

Confira por favor o seu arquivo credentials, se consta as informações corretas da sua conta (client_id, client_secret, certificado e a variável sandbox)

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 blini369

blini369

no arquivo credentials.js, eu tenho que deixar essas linhhas comentadas mesmo?
module.exports = {
// PRODUÇÃO = false
// HOMOLOGAÇÃO = true,

Avatar discord do usuario dimy5464

dimy5464

Ver Respostas

ola bom dia
[09:17]Dimy: queria tirar umas duvidas
[09:17]Dimy: eu criei um qrcode
[09:17]Dimy: porem ao fazer o apgamento
[09:17]Dimy: da q o qrcode esta invalido
[09:17]Dimy: estou o sdk-node-apis-efi
[09:17]Dimy: codigo usado const efiPay = new EfiPay(efiCredentials)
const body = {
calendario: {
expiracao: expiration,
},
devedor: {
cpf: userCpf,
nome: userName,
},
valor: {
original: value.toFixed(2),
},
chave: process.env.PIX,
}

const pix = await efiPay.pixCreateImmediateCharge([], body)
console.log(pix)
const params = {
id: pix.loc.id,
}
const qrCode = await efiPay.pixGenerateQRCode(params)
return { qrCode, pix }

Avatar discord do usuario bgeneto

bgeneto

Ver Respostas

Então realmente não estou entendendo mais nada... peço desculpas pela insistência, mas não mudamos nada em nossa produção e simplesmente começou a apresentar o erro mencionado (além da exceção que mudou de nome de EfiPayException para EfiException). Além disso, o arquivo de exemplo efipay\sdk-php-apis-efi\examples\credentials\options.php está assim (sem cache):

$options = [
"client_id" => ($sandbox) ? $clientIdHomolog : $clientIdProd,
"client_secret" => ($sandbox) ? $clientSecretHomolog : $clientSecretProd,
"certificate" => ($sandbox) ? $pathCertificateHomolog : $pathCertificateProd,
"sandbox" => $sandbox,
"debug" => false,
"timeout" => 30
];
Então vou insistir em que olhem com carinho... Thx!!!

Avatar discord do usuario silas_paullo

silas_paullo

Ver Respostas

from gerencianet import Gerencianet

credentials = {
'client_id': 'client_id',
'client_secret': 'client_secret',
'sandbox': True,
'certificate': 'insira-o-caminho-completo-do-certificado'
}

gn = Gerencianet(credentials)

body = {
'calendario': {
'expiracao': 3600
},
'devedor': {
'cpf': '12345678909',
'nome': 'Francisco da Silva'
},
'valor': {
'original': '123.45'
},
'chave': '71cdf9ba-c695-4e3c-b010-abb521a3f1be',
'solicitacaoPagador': 'Cobrança dos serviços prestados.'
}

response = gn.pix_create_immediate_charge(body=body)
print(response)

Avatar discord do usuario thiago.back

thiago.back

from gerencianet import Gerencianet
from credenciais import CREDENTIALS


gerencia = Gerencianet(CREDENTIALS)

response = gerencia.pix_create_evp()

Avatar discord do usuario thiago.back

thiago.back

Ver Respostas

gente quando eu uso a sdk em python ta me retornando o seguinte erro
{'error': 'insufficient_scope', 'error_description': 'Access token has insufficient scope'}
minha credenciais CREDENTIALS = {
'client_id': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,
'client_secret': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'sandbox': False,
'certificate': r"C:\Users\tf938\OneDrive\Documentos\codigos_python\Nova pasta\certificado.pem"
}

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 silas_paullo

silas_paullo

Ver Respostas

curl --location 'https://api-pix-h.gerencianet.com.br/oauth/token' \
--cert /home/silas/Gerencianet/certificado.pem \
--data '{
"grant_type": "client_credentials"
}'

Avatar discord do usuario klebrt

klebrt

Ver Respostas

pessoal, boa tarde,
por favor, estou obtendo um erro que estou ficando travado, se alguem puder ajudar, agradeço imensamente.
ja tentei colocar o validateMtls = false e tbem true; e o erro permanece.

{
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 403"
}

estou usando o AWS com o MTLS ja configurado, o dominio tbem esta configurado, nao estou conseguindo passar desta parte,

Utilizando credentials no producao

obrigado.

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @rlenox! Tudo bem?
Confere se no body da requisição possui o seguinte conteudo, fazendo favor?

{
"grant_type": "client_credentials"
}

Avatar discord do usuario yasmin_efi

yasmin_efi

@ldurans As credenciais e o certificado foram inseridos corretamente, dentro da pasta credentials?