Histórico de mensagens sobre js em pix

EXIBINDO CONVERSAS RECENTES:

Texto: js
Canal: pix
Avatar discord do usuario ranulfosouza

ranulfosouza

Ver Respostas

Crei um novo certificado .p12 na conta da Efí, importei este certificado para dentro do meu projeto em node.js, fiz a chamada ao método de configuração do webhook e continuo recebendo o mesmo erro:
{
"code": 141,
"error": {
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 403"
}
}

Vale lembrar que este webhook ficou funcional durante um bom tempo e só parou de funcionar depois que eu renovei o certificado da API Gateway dentro do AWS, para efetivar essa renovação, tive que criar uma nova entrada CNAME na Rota 53.
Alguém pode me ajudar ??

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 yasmin_efi

yasmin_efi

No json de exemplo de entrada que colocamos na documentação, em cada endpoint

Avatar discord do usuario _ganimedes

_ganimedes

Ver Respostas

o corpo com a confirmacao de pagamento vem nessa forma

js
{
pix:[
{
endToEndId: 'xxxxx',
txid: 'xxxxx',
chave: 'ssdsd',
valor: 0.01,
horario: 'sdsds',
}
]
}

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 renelima.

renelima.

Alguém já teve esse problema com o sdk? import axios from './lib/axios.js';
^^^^^

SyntaxError: Unexpected identifier

Avatar discord do usuario renelima.

renelima.

Ver Respostas

Eu tenho o mesmo problema do @mathheusdr, mas estou usando nodejs. Consigo autenticar, gerar pix, mas nao consigo registrar o webhook, nem direto no node e nem no postman

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 marcelo_efi

marcelo_efi

Ver Respostas

Boa tarde, tudo bem ? A confirmação vai no body em json

Avatar discord do usuario manbomb

manbomb

Ver Respostas

Olá, estou com problemas para fazer a autenticacao mTLS no meu servidor, fiquei com uma duvida especifica:

js
const httpsOptions = {
cert: fs.readFileSync(""),
key: fs.readFileSync("/"),
ca: fs.readFileSync(""),
minVersion: "TLSv1.2",
requestCert: true
};

cert e key sao os mesmos que eu utilizo para chamar a api pix?

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

O access token?
ele vai no header, assim:

js
headers = {
'authorization': 'Bearer ',
'Content-Type': 'application/json'
}

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 allanmello

allanmello

Ver Respostas

Legal, aguardo um retorno sobre a compatibilidade com NestJS

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Não existe um tempo estabelecido para que a SDK pare de funcionar.
Em relação a compatibilidade com o NestJS, irei verificar.

Avatar discord do usuario allanmello

allanmello

Ver Respostas

Até quando a Gerencianet irá funcionar? E o problema de compatibilidade com o NestJS da Efi, já foi resolvido?

Avatar discord do usuario allanmello

allanmello

Ver Respostas

Sim, a dois meses atrás vcs mesmo me aconselharam a usar a SDK Gerencianet Typescript pq a Efi estava com algumas incompatibilidades com o NestJS, com o Nodejs foi de boa. Então eu quero saber se posso continuar usando, pq pretendo subir p/ produção minha Api Server de Integração de Pagamentos pela Efi semana que vem.
E não quero ter que correr depois p/ migrar para SDK Efi qdo estiver em produção.

Avatar discord do usuario allanmello

allanmello

Ver Respostas

Boa tarde, uma dúvida.
Estou usando o SDK Gerencianet Typescript e não o Efi, o pq? Pq o Efi Typescript não rodou no NestJS.
A dúvida é: Posso continuar usando o SDK Gerencianet Typescript ou ele será descontinuado conforme os endereços da Api Gerencianet?

Avatar discord do usuario nandinhatnl

nandinhatnl

Ver Respostas

Bom dia a todos ! Finalmente consegui cadastrar perfeitamente o webhook em ambiente de produção a requisição toda vez que recebo um pix. A minha dúvida agora é a seguinte, na documentação para os webhooks mostra os diferentes json enviado. Estou recebendo o JSON Recebido ele informa o valor , um txid, minha chave pix , um valor... em outra ABA da Documentação , o json é mais completo , RECEBIDO_DADOS , com as informações de quem pagou , como recebo este json mais completo?