Histórico de mensagens sobre js

EXIBINDO CONVERSAS RECENTES:

Texto: js
# cartões
Avatar discord do usuario alex_684067_87631

alex_684067_87631

@yasmin_efi Como estás? logramos avanzar muchísimo con el ejemplo de EFI, y hoy podemos generar un Pix en nuestro sistema. Ahora necesito recibir mensajes de EFI que nos digan que el pix fue efectivamente generado con su respetivo .json o que el pix fue pagado o cualquier otra situacion que EFI pudiera comunicar. En Mercadopago yo recibo mensajes en un URL específica de mi servidor.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Oi, @.thallestks. Bom dia! Tudo bem?
As funções e exemplos de split ainda não foram adicionadas à SDK de node.
No entanto, caso queira se adiantar, você pode incluir a função com a rota e método no arquivo /lib/constants.js.

# cartões
Avatar discord do usuario marcoglg_dev

marcoglg_dev

Ver Respostas

estou usando Next.js

# cartões
Avatar discord do usuario marcoglg_dev

marcoglg_dev

Ver Respostas

Boa tarde galera o script para pegar a bandeira do cartão e gerar paymentToken está funcionando certinho?

# pix
Avatar discord do usuario .ilselangnar

.ilselangnar

Ver Respostas

Oi Guilherme:

Estou com um problema com o webhook

Consigo listar os webhooks configurados sem problema.

O problema vem quando quero configurar um novo webhook para receber notificações de pagamento

Aqui esta meu codigo:


const efipay = new EfiPay(options)

async function api_configure_webhook_efipay( req, res, next ) {

let body = {
webhookUrl: 'https://origami.ink/webhook_paymentefipay',
}

let params = {
chave: '8712f01e-e8e6-4eab-a636-ddc8e13fe8b7',
}

try {
let object_result = await efipay.pixConfigWebhook(params, body)
printf( "[configure_webhook] -> object_result -> ", object_result )
res.json( object_result )
} catch( e ) {
// throw e
res.json( e )
}

}

module.exports = api_configure_webhook_efipay


Aqui esta o erro:

{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ECONNRESET"
}

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Além disso, quando você estiver registrando a webhook URL no endpoint PUT /v2/webhook/:chave, na sua URL você pode acrescentar algum parâmetro para diferenciar a URL de cada cliente, e assim fazer alguma tratativa na sua aplicação. Exemplo:

Obs: Se for aplicar esta regra com um parâmetro na URL, aconselho deixar sempre o final um parâmetro sem valor, como no exemplo acima &tipo=. Que assim, o /pix cairá como parâmetro no final da URL, e você irá tratar a notificação em /webhook.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

@.andregomes, quando você registra o webhook no endpoint PUT /v2/webhook/:chave, você está basicamente associando uma chave Pix a uma URL específica. No seu caso, a URL permanecerá a mesma, mas a chave será única para cada conta de cliente.

Assim que nossa API enviar a notificação, o JSON incluirá essa chave. Isso permitirá que você identifique de qual conta é aquele recebimento. Além disso, através do txid, você poderá saber a qual cobrança se refere.

# pix
Avatar discord do usuario .ilselangnar

.ilselangnar

Estou com um problema com o webhook

Consigo listar os webhooks configurados sem problema.

O problema vem quando quero configurar um novo webhook para receber notificações de pagamento

Aqui esta meu codigo:


const efipay = new EfiPay(options)

async function api_configure_webhook_efipay( req, res, next ) {

let body = {
webhookUrl: 'https://origami.ink/webhook_paymentefipay',
}

let params = {
chave: '8712f01e-e8e6-4eab-a636-ddc8e13fe8b7',
}

try {
let object_result = await efipay.pixConfigWebhook(params, body)
printf( "[configure_webhook] -> object_result -> ", object_result )
res.json( object_result )
} catch( e ) {
// throw e
res.json( e )
}

}

module.exports = api_configure_webhook_efipay


Aqui esta o erro:

{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ECONNRESET"
}

# pix
Avatar discord do usuario walysonpatric

walysonpatric

Ver Respostas

Coloquei assim no arquivo vercel.json e funcionou a confirmação do PIX

{
"version": 2,
"builds": [
{
"src": "api/app.js",
"use": "@vercel/node"
}
],
"routes": [
{
"src": "/cob/:txid",
"dest": "/api/app.js"
},
{
"src": "/(.)",
"dest": "/api/app.js"
}
]
}

# módulos-plugins
Avatar discord do usuario guilherme_efi

guilherme_efi

Segue um exemplo mais detalhado, onde é feito a autenticação e consumo do endpoint para criar um boleto.

php
$config = [
"client_id" => "Client_Id_...",
"client_secret" => "Client_Secret_..."
];

$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
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_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Basic ' . $autorizacao
),
));
$returnAuth = json_decode(curl_exec($curl), true);
$access_token = $returnAuth['access_token'];
curl_close($curl);

echo "
";
var_dump($returnAuth);
echo "
";

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/charge/one-step',
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 => '{
"items": [
{
"name": "Teste Gn",
"amount": 1,
"value": 500
}
],
"payment": {
"banking_billet": {
"expire_at": "2024-12-10",
"customer": {
"name": "Gorbadoc Oldbuck",
"cpf": "94271564656",
"email": "[email protected]"
}
}
}
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer ' . $returnAuth['access_token'],
'Content-Type: application/json'
),
));

$responseBillet = curl_exec($curl);
curl_close($curl);

echo "
";
var_dump($responseBillet);
echo "
";

# pix
Avatar discord do usuario .ilselangnar

.ilselangnar

Ver Respostas

Bom dia.


Gostaria de saber aonde fica a documentação das funções do nodejs SDK da efipay

Como posso facilmente gerar um pix? Já tenho as credenciais, o pacote npm

# módulos-plugins
Avatar discord do usuario discovery_kids

discovery_kids

Ver Respostas

sim estou usando cURL.

//Desenvolvido pela Consultoria Técnica da Efí
$config = [
"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://cobrancas-h.api.efipay.com.br/v1/authorize',
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_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";
?>

com as devidas alterações no client_id e client_secret.

# pix
Avatar discord do usuario walysonpatric

walysonpatric

Ver Respostas

Coloquei assim mas só funciona no localhost a confirmação de PIX (http://localhost:8000/cob/a7689c1ff5b64eeca8695e2e58c30007), no site da vercel da página não encontrada.

Já coloquei as variáveis no site e estou usando o certificado p12, o pem da erro até no localhost.

Teria que colocar algum comando no arquivo next.config.js ou vercel.json?

// Rota para consultar cobrança por txid
router.get('/cob/:txid', async (req, res) => {
const txid = req.params.txid;

try {
const reqGN = await GNRequest({
clientID: process.env.GN_CLIENT_ID,
clientSecret: process.env.GN_CLIENT_SECRET
});

// Consultar a cobrança usando o txid
const response = await reqGN.get(https://pix.api.efipay.com.br/v2/cob/${txid});

// Verificar se há um objeto PIX na resposta
if (response.status === 200 && response.data.pix) {

// Enviar o código de ativação junto com a resposta
return res.status(200).json({ message: 'PIX confirmado com sucesso.' });
} else {
// O PIX não foi pago ou não encontrado
return res.status(400).json({ error: 'PIX não encontrado ou não foi pago.' });
}
} catch (error) {
console.error('Erro ao consultar a cobrança:', error.message);
return res.status(500).json({ error: 'Erro ao consultar a cobrança.' });
}
});

# assinaturas
Avatar discord do usuario lirousme

lirousme

Ver Respostas

'https://efipay.github.io/js-payment-token-efi/' Estava configurando o layout desse exemplo, para usar ele para gerar payment token, e então usar esse paymente token para executar esse arquivo 'sdk-php-apis-efi/examples/charges/subscription/createOneStepCardSubscription.php', entretando se o usuário preencher esse formulário e depois o programa chamar 'OneStepCardSubscription.php', me parece que vão haver duas cobranças no cartão do cliente, pois os dois arquivo solicitam um valor, alguém pode me ajudar a resolver isso? Obs: Ao envia esse formulário 'https://efipay.github.io/js-payment-token-efi/' vai haver uma cobranaça não relacionada com a assinatura, mas eu preciso apenas do paymente token, pois esse arquivo aqui exige o paymente token 'OneStepCardSubscription.php', que de fato é o arquivo que vai fazer uma cobrança e a assinatura do cliente no plano.

# pix
Avatar discord do usuario walysonpatric

walysonpatric

Ver Respostas

Oi, pra confirmar se o pix foi pago seria algo assim? (não sei muito sobre isso, to aprendendo e usei o GPT pra criar o código.)

app.post('/webhook(/pix)?', async (req, res) => {

try {
// Consultar a cobrança usando o txid
const response = await axios.get(/v2/cob/:txid, {
headers: {
Authorization: 'Bearer' + process.env.GN_CLIENT_ID // Substitua pelo token de autorização correto
}
});

// Verificar o status da cobrança na resposta
if (response.status === 200 && response.data.status === 'CONCLUIDA') {

// Enviar o código de ativação para o Supabase
const { data: insertedData, error } = await supabaseClient
.from('dominios_permitidos')
.insert([{ code: generatedCode }]); // Acesse o código gerado na rota '/api/key'

// Enviar o código de ativação junto com a resposta
return res.status(200).json({ message: 'Webhook recebido com sucesso.', code: generatedCode });
} else {
// Se a cobrança não estiver concluída, retorne uma mensagem de erro
return res.status(400).json({ error: 'Cobrança não concluída.' });
}
} catch (error) {
console.error('Erro ao consultar a cobrança:', error.message);
return res.status(500).json({ error: 'Erro ao consultar a cobrança.' });
}

});

# pix
Avatar discord do usuario _thiagowatanabe

_thiagowatanabe

Ver Respostas

Irei utilizar Node.JS com TypeScript no Backend e Next.JS 14 no frontend

# devs
Avatar discord do usuario williamoliveira5844

williamoliveira5844

oie boa noite estou tendando adicionar o certificado na aplicação em nodejs passo o caminha tudo certo mas quando faço a request a conecção é fechado só acho artigo antigos alguem pode me ajudar