Histórico de mensagens sobre js

EXIBINDO CONVERSAS RECENTES:

Texto: js
# devs
Avatar discord do usuario yuraji.

yuraji.

Ver Respostas

Bom dia a todos!

Criei um fork da biblioteca da Efí Pay (efipay/sdk-node-apis-efi) sdk em nodejs da api, que é na verdade um exemplo completo de como fazer a chamada da API de Pix da Efí em nodeJS, usando js puro e axios (inspirado pelo próprio sdk) e mais importante, rodando em um AWS Lambda recuperando o certficidado .p12 diretamente de um AWS S3 Bucket.
Logo irei publicar um incremento para que o exemplo também recupere o QRCode (location api da Efí) e grave a imagem do QRCode também em um S3 Bucket.

Como eu apenas uso AWS Lambda, tecnologias serverless e mais recentemente Cloudflare workers, senti falta de uma versão para estes ambientes.

Segue link do repo no git:
https://github.com/pipeu/sdk-node-apis-efi-lambda

Qualquer dúvida, sugestão ou crítica (será muito bem recebida), estou à disposição!
Luiz Couto

# pix
Avatar discord do usuario viniciusfebasse_37973

viniciusfebasse_37973

O código para geração da cobrança está assim

def criar_cobranca_pix(self, txid):
tokens = self.autorizar()
access_token = tokens['access_token']
endpoint = f"{self.url}/v2/cobv/{txid}"

cabecalho = {"Content-Type": "application/json",
"Authorization": f"Bearer {access_token}"}

dados = {
"calendario": {
"dataDeVencimento": "2022-12-01",
"validadeAposVencimento": 30
},
"devedor": {
"logradouro": "Alameda Souza, Numero 80, Bairro Braz",
"cidade": "Recife",
"uf": "PE",
"cep": "70011750",
"cpf": "12345678909",
"nome": "Francisco da Silva"
},
"valor": {
"original": "123.45",
"multa": {
"modalidade": 2,
"valorPerc": "15.00"
},
"juros": {
"modalidade": 2,
"valorPerc": "2.00"
},
"desconto": {
"modalidade": 1,
"descontoDataFixa": [
{
"data": "2022-11-30",
"valorPerc": "30.00"
}
]
}
},
"chave": "5f84a4c5-c5cb-4599-9f13-7eb4d419dacc",
"solicitacaoPagador": "Cobrança dos serviços prestados."
}

dados = json.dumps(dados)
response = requests.request("PUT", endpoint, headers=cabecalho, data=dados)

print(response.text)

return response.text

# cartões
Avatar discord do usuario ellrenancid

ellrenancid

Ver Respostas

terei que utilizar a lib js?

# pix
Avatar discord do usuario moises10101

moises10101

Ver Respostas

BOM DIA! Como eu faço pra conseguir enviar o Pix. Já consigo gerar a cobrança. Porém pra fazer transferência, não está autorizado. Vcs podem me ajudar?!

Estou utilizando a integração em Nodejs com o Sdk da Efí

# pix
Avatar discord do usuario gabriel_efi

gabriel_efi

Boa tarde, @andrebarbosa_dev! O Location contém um JSON com os dados referentes a uma cobrança PIX, ao utilizar os endpoints de emissão de cobrança PIX (COB ou COBV) automaticamente será criado um location. Contudo, é possível criar esse location primeiro pelo endpoint POST /v2/loc e passar o ID do mesmo na requisição da emissão de cobrança depois, como se fosse um Two-Step.

# dúvidas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Oi, @alessandramaculo_96124. Para boletos, a data limite é de 10 anos a partir da data atual. Portanto, por exemplo, hoje você consegue emitir um boleto com vencimento até "2034-04-01". Se inserir uma data posterior a essa, receberá a seguinte falha:

json
{
"code": "4600414",
"error": "server_error",
"error_description": "vencimento máximo atingido"
}

# pix
Avatar discord do usuario pianaro

pianaro

Ver Respostas

Boa tarde, como consigo pegar uma flag que o pagamento do pix foi realizado, pois preciso disso para chamar uma função após o pagamento. Minha aplicação já está rodando em produção e o pix está tudo certo.

Aqui esta a rota de pagamento.
router.post("/payment", async (req: Request, res: Response) => {

const reqGN = await reqGNAlready;
const dataCob = {
calendario: {
expiracao: 3600,
},
valor: {
original: "0.10", //req.body.value,
},
chave: "b801ed6a-27ba-4927-a952-d44e2c8ab9cc",
solicitacaoPagador: "Informe o número ou identificador do pedido.",
};

const cobResponse = await reqGN.post("/v2/cob", dataCob);

const qrcodeResponse = await reqGN.get(
/v2/loc/${cobResponse.data.loc.id}/qrcode
);
res.send(qrcodeResponse.data);
});

Aqui está a do webhook:

router.post("/webhook(/pix)?", (req: Request, res: Response) => {
if (req.secure){
var body = req.body;
const filePath = __dirname + "/data.json";
fs.appendFile(filePath, JSON.stringify(body) + "\n", function (err) {
if (err) {
console.log(err);
} else {
res.status(200).end();
}
})
res.status(200).end();
}else{
res.status(401).end();
}
});

# pix
Avatar discord do usuario mcunha98

mcunha98

Ver Respostas

uma duvida, chamei POST : https://pix-h.api.efipay.com.br/v2/cob
mas havia colocado o metadata para a url de notificacao, tomei 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"}]}
"metadata": { "notification_url": "http:\/\/webhook.site.com.br" }

e vendo na doc, realmente nao da suporte para metadata, entao como fazer para ligar o webhook do pix via notification_url ?

# pix
Avatar discord do usuario russofullstack

russofullstack

Ver Respostas

Unhandled Promise Rejection {"errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"TypeError: gerencianet.pixSplitConfigId is not a function","reason":{"errorType":"TypeError","errorMessage":"gerencianet.pixSplitConfigId is not a function","stack":["TypeError: gerencianet.pixSplitConfigId is not a function"," at /var/task/src/index.js:783:15"," at Layer.handle [as handle_request] (/var/task/node_modules/express/lib/router/layer.js:95:5)"," at next (/var/task/node_modules/express/lib/router/route.js:144:13)"," at Route.dispatch (/var/task/node_modules/express/lib/router/route.js:114:3)"," at Layer.handle [as handle_request] (/var/task/node_modules/express/lib/router/layer.js:95:5)"," at /var/task/node_modules/express/lib/router/index.js:284:15"," at Function.process_params (/var/task/node_modules/express/lib/router/index.js:346:12)"," at next (/var/task/node_modules/express/lib/router/index.js:280:10)"," at cors (/var/task/node_modules/cors/lib/index.js:188:7)"," at /var/task/node_modules/cors/lib/index.js:224:17"]},"promise":{},"stack":["Runtime.UnhandledPromiseRejection: TypeError: gerencianet.pixSplitConfigId is not a function"," at process. (file:///var/runtime/index.mjs:1276:17)"," at process.emit (node:events:529:35)"," at emit (node:internal/process/promises:149:20)"," at processPromiseRejections (node:internal/process/promises:283:27)"," at process.processTicksAndRejections (node:internal/process/task_queues:96:32)"]}
Unknown application error occurred

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

# pix
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!!!!

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

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

# pix
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?

# 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

# 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

# dúvidas
Avatar discord do usuario tarcizio5821

tarcizio5821

@guilherme_efi e @igor_efi Consegui pegar o txid e criar o arquivo txt.
Não ficou muito elegante mas foi o que funcionou, e funciona legal.
Segue a solução para quem um dia precisar:
/////////////////4
$n = json_encode($dados);
$d1 = '['.$n.']';
$d2 = json_decode((string) $d1);
$txid = '';
foreach($d2 as $item) {
$txid .= $item->pix[0]->txid;
}
//grava o arquivo txt vazio
$fp = fopen('./txts/'.$txid.'.txt','wb');
fwrite($fp,'');
fclose($fp);
/////////////////4
Obrigado a todos.
imagem enviada na mensagem pelo usuario tarcizio5821

# pix
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"
}
}

# dúvidas
Avatar discord do usuario guilherme_efi

guilherme_efi

Na imagem que mandou anteriormente, faça da seguinte forma:

php
$data = json_decode($dados);
var_dump($data);
exit();
coloquei um exit() no final para interronper a execução dos códigos seguintes. Depois ele deve ser removido.
imagem enviada na mensagem pelo usuario guilherme_efi

# dúvidas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

@tarcizio5821, se foi feito o json_decode o valor em $data será um array.
Sugiro debugar, colocar um var_dump($data); na linha 40 para visualizar o array completo.