Histórico de mensagens sobre App em pix

EXIBINDO CONVERSAS RECENTES:

Texto: App
Canal: pix
Avatar discord do usuario harlocksm

harlocksm

Ver Respostas

No APP da Efí não me retornou nada de bloqueio

Avatar discord do usuario alex_684067_87631

alex_684067_87631

hola buenas tardes, soy nuevo en este tema EFI. Me logueé en https://app.sejaefi.com.br/home y estoy buscando un lugar en donde crear un código PIX o QR para que un cliente pueda utilizarlo. Actualmente integré la aplicación usando mercadopago pero quiero cambiarla a algo más intuitivo.
Ya instalé el SDK y seguramente voy a necesitar crear las keys, como muestra el ejemplo de EFI?
Me refiero a
{
"client_id": "Client_Id",
"client_secret": "Client_Secret",
"certificate": "./certs/nome_certificado.p12",
"sandbox": true,
"timeout": 30
} pero no entiendo bien los tutorials. Existe algún URL con el "paso a paso" para integrar una aplicación para que pueda generar el QR o el link correspondiente

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

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O site não logado está com o mesmo para mim, mas app.sejaefi.com.br carrega, loga etc.

Avatar discord do usuario .thallestks

.thallestks

Ver Respostas

E preciso liberar algo no sistema?? Onde aponto a URL do meu sistema para receber na rota as notificações não encontrei na documentação nem no app 😓

Avatar discord do usuario micaelmths

micaelmths

Ver Respostas

Olá pessoal, bom dia!

Eu já sou cliente de vocês e utilizo a API PIX para realizar a cobrança de um assinatura de um aplicativo que eu possuo. Estou pretendendo criar um novo app capaz de guardar as informações da chave PIX dos meus clientes e eu observar se esse PIX já recebeu o pagamento esperado ou não, ou seja, a funcionalidade de webhook que eu já tenho no meu primeiro app, só que agora observando o PIX dos meus clientes.

Além do mais, sou iniciante nesse processo de pagamento, talvez a lógica disso possa ser manipulando pelo meu próprio PIX e transferindo o valor depois pro meu cliente, ou seja, eu faço o meio de campo entre o meu cliente e o cliente dele.

Avatar discord do usuario alber_abreu

alber_abreu

Ver Respostas

Não amigo, eu gero as parcelas direto no efi e envio pro cliente, mas queria saber se ele mesmo pode ver as faturas no app, nao gero elas de outro sistema não.

Avatar discord do usuario alber_abreu

alber_abreu

Ver Respostas

Isso, vi que tem alguns exemplos la no git, o que eu queria seria mais ou menos assim, cliente abriria o app, informando seu cnpj, então localizava as faturas que ele possui la na minha conta e faria o pagamento.

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Bom dia, @alber_abreu! Tudo bem?
Sim, você consegue desenvolver um app com este objetivo.
Você pode fazer um aplicativo que consulte a base do seu sistema integrade e mostre as inforações para o seus clientes.

Avatar discord do usuario russofullstack

russofullstack

app.post('/pixDevolution', async (req, res) => {

const { valor, txid, id } = req.body;

const payment = await Payment.findOne({ where: { txid:txid} })
const order = await Orders.findOne({ where: { txid:txid} })

let body = {
valor: valor,
}

let params = {
e2eId: payment.endToEndId,
id: new Date().getTime(),
}

if(order.pagamento !== 'realizado'){
res.status(400).send('Pedido Não está Pago!')
}

await gerencianet.pixDevolution(params, body)
.then((resposta) => {
console.log(resposta)
})
.catch((error) => {
console.log(error)
})


await Orders.update({
pagamento: "reembolso_solicitado"
}, {
where: {
id: id
}
});

res.status(200).send('Gerou o Reembolso');
});

Avatar discord do usuario cachorro8442

cachorro8442

Ver Respostas

nao ta, estou fazendo isso so para testes:

HashMap params = new HashMap();
params.put("txid", "a7ae545f0a864021bef8afb646416250"); //aqui eu usei o txid retornado do pixCreateImmediateCharge
Log.d("GerencianetDetails", "Params: " + params);

try {
Log.d("GerencianetDetails", "Test1 ");
Gerencianet gn = new Gerencianet(options, getAssets());
Log.d("GerencianetDetails", "Test2 ");
Map response = gn.call("pixDetailCharge", params, new HashMap());
Log.d("GerencianetDetails", "Test3 ");
Log.d("GerencianetDetails", "Response: " + response);
mesmo antes e depois de pago ele me retorna null:

Test1
2024-04-02 00:12:24.580 23825-23825 GerencianetDetails com.example.appinsta D Test2
2024-04-02 00:12:24.881 23825-23825 GerencianetDetails com.example.appinsta E Exception: null

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();
}
});

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

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Que criação de chave Pix só no ambiente de produção, e que você está usando um método que você não precisa usar, pois é mais simples criar uma chave Pix no app/site.

Avatar discord do usuario rodrigodietze_26827

rodrigodietze_26827

Ver Respostas

Oi Gabriel, obrigado pelo retorno. Mas so para entender. Eu tenho 60 lojas que vendem em nosso app. Queremos que usando nosso app, o usuario possa fazer na hora umn pix para qualquer uma destas lojas e assim que detectarmos o pagamento, efetuar a venda. Mas estes clientes possuem contas bancarias em bancos variados. Itau, BRadesco, Nubank etc... Minha pergunta seria: Minha empresa sendo somente a intermediadora destes pagamentos consegue transacionar para as chaves deles e ser notificada do pagamento por webhooks? Como funcionaria isso? So preciso das chaves de cada um? Preciso criar contas deles na Efi tb?

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

r_a_g_

Ver Respostas

Deu certo. em Homologação ja recebo os retornos da api. Em produção, tentando enviar pix, recebo o retorno
"nome": "erro_autorizacao",
"mensagem": "Para ativar este serviço, envie um e-mail para [email protected] ou abra um ticket em sua conta Efí"
Abri um chamado pelo aplicativo da Efi pedindo esta ativação. É isso mesmo? Alguem na Efi que precisa ativar?
Pois achei que depois de criar a aplicação, com suas chaves e certificados, habilitando as ações que a app pode fazer via api.. ja estaria ativado para uso.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia! Tudo bem? É possível sim você emitir cobranças com a gente e mostrar em seu app.
O seu app no Android Studio vai precisar se relacionar com seu back-end, e seu back-end com nossa API Pix.
O seu back-end foi desenvolvido em qual linguagem?