Histórico de mensagens sobre js em pix

EXIBINDO CONVERSAS RECENTES:

Texto: js
Canal: pix
Avatar discord do usuario hspatz

hspatz

Ver Respostas

Eu estou utilizando o SDK-PHP de voces.
Cadastrei o webhook como "https://meudominio.com.br/pixefi"
Recebo os eventos da criação no endereço acima

( [{"evento":"teste_webhook","data_criacao":"2024-03-30T11:20:39.415Z"}] ).

O "index.php" nesta pasta é o mesmo do site.

Abaixo deste diretório existe uma pasta "pix" onde o mesmo "index.php"rdt's lá. ( "meusite.com.br/pixefi/pix" )
AO criar um pagamento PIX em produção e o mesmo pago, não recebo nenhuma informação de retorno da EFI.
Foi colocadouma função que salva qualquer acesso a pasta, como exemplo fiz um acesso pelo Chrome "https://meudominio.com.br/pixefi/pix" e o resultado salvo foi.


Metodo: GET
Parametros: a:2:{i:0;s:6:"pixefi";i:1;s:3:"pix";}
Body: null


Segue o parte do script "index.php" onde salva qualquer acesso a pasta

===============================================================
// Obtém o método HTTP, body e parâmetros da requisição
$metodo = $_SERVER['REQUEST_METHOD'];
$parametros = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$body = json_decode(file_get_contents('php://input'), true);


//
/
$nomeArquivo = 'dados/dados_recebidos.json';
$dadosJson = "\n Metodo: " .$metodo ."\n Parametros: " .serialize($parametros) ."\n" ."Body: " .json_encode($body) ."\n";
$arquivo = fopen($nomeArquivo, 'a');
fwrite($arquivo, $dadosJson);
fclose($arquivo);
//
/


try {
requisicao($metodo, $body, $parametros);
} catch (Exception $e) {
salvar ( $xdados);
resposta(400, $e->getMessage(), $e);
}
=================================================================

Estou tentando gerar cobranças no modo homologação de R$ 0,01 e não recebo notificação no modo de homologação também.

Avatar discord do usuario lidiamariano

lidiamariano

Ver Respostas

Boa noite! Alguem pode me ajudar com o recebimento do Webhook? Eu já tenho o webhook funcionando e recebendo as notificações. Mas agora eu preciso pegar a reposta dessas notificações pelo lado do cliente, no frontend. Como eu posso fazer isso? Estou printando, na minha api, o req.body (notificação). E é printado isso (substitui os valores com xxxx): {
pix: [
{
endToEndId: 'xxxx,
txid: 'xxxx',
chave: 'xxxx,
valor: 'xxxx',
horario: '2024-03-30T01:23:19.000Z',
infoPagador: 'Cobrança.'
}
]
} Mas quero pegar essa resposta em uma página especifica com Next Js. Desde já, agradeço!!!!

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Como está o accept que vc envia ? Precisa ter o accept/jose+json ...

Avatar discord do usuario tiago1012web

tiago1012web

Ver Respostas

Olá. Em produção utulizando a SDK NodeJso que segnifica a reposta "Forbidden" ao tentar criar uma chave pix?

Avatar discord do usuario _alexandrehenrique

_alexandrehenrique

@Efí ola , eu presiso de uma orientação de configuração do nginx e nodejs para webhook pix

Avatar discord do usuario sebastiao_do_shoppingvirtual

sebastiao_do_shoppingvirtual

Ver Respostas

Bom dia pessoal! Estou tentando implementar api pix com node.js mas esta me retornando um erro que eu não estou conseguindo interpretar
imagem enviada na mensagem pelo usuario sebastiao_do_shoppingvirtual

Avatar discord do usuario guichavesc

guichavesc

Ver Respostas

Boa Tarde!

Estou tentando fazer a implementação da API Open Finance, mas estou obtendo o seguinte erro:

{
"nome": "erro_iniciacao_pagamento",
"mensagem": "A conta do favorecido possui restrição de pagamento"
}


Vou colocar o JSON que estou enviando (mascarei dados restritos):

{
"pagador": {
"idParticipante": "44b193ac-a348-4b6e-acd9-9a3a57bb4ca4",
"cpf": ""
},
"favorecido": {
"contaBanco": {
"codigoBanco": "09089356",
"agencia": "0001",
"documento": "
",
"nome": "",
"conta": "",
"tipoConta": "CACC"
}
},
"detalhes": {
"valor": "9.90",
"infoPagador": "Cobrança referente ao pedido X",
"idProprio": "12345"
}
}

Avatar discord do usuario tieferson

tieferson

object(stdClass)[1476]
public 'nome' => string 'json_invalido' (length=13)
public 'mensagem' => string 'Valores ou tipos de campo inválidos' (length=36)
public 'erros' =>
array (size=1)
0 =>
object(stdClass)[1472]
public 'chave' => string 'required' (length=8)
public 'caminho' => string '' (length=0)
public 'mensagem' => string 'deve ter a propriedade obrigatória body' (length=40)

Avatar discord do usuario tieferson

tieferson

Bom dia Pessoal, tudo bom? Estou tentando implementar um método em php para setar o Webhook, mas estou com a seguinte mensagem de erro:

object(stdClass)[1476]
public 'nome' => string 'json_invalido' (length=13)
public 'mensagem' => string 'Valores ou tipos de campo inválidos' (length=36)
public 'erros' =>
array (size=1)
0 =>
object(stdClass)[1472]
public 'chave' => string 'required' (length=8)
public 'caminho' => string '' (length=0)
public 'mensagem' => string 'deve ter a propriedade obrigatória body' (length=40)

Avatar discord do usuario _porfirio

_porfirio

Ver Respostas

Olá, tudo bem ? Ao configurar o webhook, estou recebendo o seguinte erro


{
nome: 'json_invalido',
mensagem: 'Valores ou tipos de campo inválidos',
erros: [
{
chave: 'additionalProperties',
caminho: '.body',
mensagem: 'não são permitidas propriedades adicionais'
}
]
}
{
webhookUrl: 'https://application.cardi.digital/str/order/sales/pix/webhook/'
}

Avatar discord do usuario marcus2vinicius

marcus2vinicius

pixCreateCharge.js

js
const EfiPay = require('sdk-node-apis-efi')
const options = require('../../credentials')

let body = {
calendario: {
expiracao: 3600,
},
devedor: {
cpf: '',
nome: '',
},
valor: {
original: '0.01',
},
chave: '', // Informe sua chave Pix cadastrada na efipay. //o campo abaixo é opcional
infoAdicionais: [
{
nome: 'Pagamento em',
valor: 'NOME DO SEU ESTABELECIMENTO',
},
{
nome: 'Pedido',
valor: 'NUMERO DO PEDIDO DO CLIENTE',
},
],
}

let params = {
txid: 'dt9BHlyzrb5jrFNAdfEDVpHgiOmDbVq111',
}

const efipay = new EfiPay(options)

efipay.pixCreateCharge(params, body)
.then((resposta) => {
console.log(resposta)
})
.catch((error) => {
console.log(error)
})

Avatar discord do usuario marcus2vinicius

marcus2vinicius

Ver Respostas

bash
$ openssl genrsa -out meu-chave-privada.pem 2048
$ openssl req -new -x509 -key meu-chave-privada.pem -out meu-certificado.pem -days 365
o certificado seria esse aqui?

eu fiz dessa forma e agora está dando esse erro
bash
marcus@marcus-laptop:~/Documents/projects/senai/api-efi/sdk-node-apis-efi/examples/pix/cob$ node pixCreateCharge.js
TypeError: Cannot read properties of undefined (reading 'response')
at /home/marcus/Documents/projects/senai/api-efi/sdk-node-apis-efi/examples/node_modules/sdk-node-apis-efi/lib/endpoints.js:89:17

Avatar discord do usuario marcus2vinicius

marcus2vinicius

Estou usando esse exemplo pixCreateCharge.js

bash
marcus@marcus-laptop:~/Documents/projects/senai/api-efi/sdk-node-apis-efi/examples/pix/cob$ node pixCreateCharge.js

/home/marcus/Documents/projects/senai/api-efi/sdk-node-apis-efi/examples/node_modules/sdk-node-apis-efi/lib/endpoints.js:48
throw FALHA AO LER O CERTIFICADO, VERIFIQUE O CAMINHO INFORMADO: ${this.options.certificate}
^
FALHA AO LER O CERTIFICADO, VERIFIQUE O CAMINHO INFORMADO: null
(Use node --trace-uncaught ... to show where the exception was thrown)

Node.js v18.17.0

Avatar discord do usuario uknow.rommel

uknow.rommel

Aqui está o erro completo -

PAGAMENTO VIA PIX
TypeError: Cannot read properties of undefined (reading 'data')
at /usr/src/app/node_modules/sdk-typescript-apis-efi/dist/src/endpoints.js:84:38
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

Obrigado.
wehook é "VIDA" meu amigo!
Consegui fazer a pesquisa dentro do json e ficou muito top. Fiz requisições de 5 em 5 segundos pelo ajax.
Coloquei uma condição: "se encontrar o txid interrompe a requisição, grava no banco, e logo direciona o cliente para outra quebrada".
Muito top cara, obrigado!

Avatar discord do usuario kauan_bs

kauan_bs

Boa tarde. Estou tentando configurar o webhook no meu servidor porém estou recebendo 401. Estes são meus códigos :

js

const httpOptions = {
cert: fs.readFileSync("gd_bundle-g2-g1.crt"), // Certificado fullchain do dominio
key: fs.readFileSync("56092e4c5a31e0c5.crt"), // Chave privada do domínio
ca: fs.readFileSync("chain-pix-prod.crt"), // Certificado público da Efí
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Caso precise que os demais endpoints não rejeitem requisições sem mTLS, você pode alterar para false
};

app.post("/webhookEfi", (request, response) => {
if (request.socket.authorized) {
console.log("autorizado")
response.status(200).end();
} else {
console.log("não autorizado")
response.status(401).end();
}
});

app.post("/webhookEfiConfig", async (req, res) => {
try {
let body = {
webhookUrl: "{minhaurl}/webhookEfi",
};

let params = {
chave: "6e364195-3e3d-4ee5-8ca0-14db77d30593",
};

const efipay = new EfiPay(options);

await efipay.pixConfigWebhook(params, body);

// Se tudo correr bem, você pode enviar uma resposta de sucesso
res.status(200).send("Configuração do webhook concluída com sucesso!");
} catch (error) {
// Se ocorrer algum erro, você pode enviar uma resposta de erro e registrar o erro
console.error("Erro ao configurar o webhook:", error);
res.status(500).send("Ocorreu um erro ao configurar o webhook.");
}
});
Alguem sabe qual o motivo ?

Avatar discord do usuario tarcizio5821

tarcizio5821

Ver Respostas

É porque eu não tenho conhecimentos para fazê-lo, mas vou tentar buscar o txid no json.
Muito obrigado.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Oi, @r_a_g_. Não precisa necessariamente fazer a configuração do Alias no Apache. Ela serve para fazer a tratativa da adição do /pix na URL quando é enviada a notificação.

Mas você pode registrar a sua webhook URL com query param ?ignorar=. Ou seja, na request PUT /v2/webhook/:chave para cadastrar o webhook, você irá passar o body com sua URL, exemplo:

Assim, vocÊ vai tratar o json sempre no index.php localizado em /webhook.

Avatar discord do usuario rubenskuhl

rubenskuhl

Nessa URL vem um JWT, que você decodifica e vira um JSON