
estou usando node para criar um bot de vendas de produtos online gostaria de saber qual é a compatiblidade com ts ou js ou se seria eu utilizar outra lioguagem de programação para fazer isso....
Termos mais procurados:
estou usando node para criar um bot de vendas de produtos online gostaria de saber qual é a compatiblidade com ts ou js ou se seria eu utilizar outra lioguagem de programação para fazer isso....
Bom dia, @kvtwetfps! Como vai?
Como o Rubens mencionou, você pode usar o endpoint https://dev.efipay.com.br/docs/api-pix/endpoints-exclusivos-efi#criarmodificar-configurações-da-conta">PUT /v2/gn/config para habilitar a configuração webhook.notificacao.pagador=true que permite receber no webhook o nome e o CPF mascarado do pagador, conforme exemplo abaixo:
Tem uma SDK específica de TS e vc está usando a de NodeJS... apesar da grande similaridade, pode ser o problema.
https://dev.efipay.com.br/docs/sdk/type-script
Estou usando discord.js e estou criando o codigo em .ts
Mas fica o registro de que mesmo sem parâmetro de query, no JSON vem a chave Pix que já identifica unicamente um cliente. Então a query seria só "belts and suspenders", ou seja, ter mais um fator de confirmação.
Olá! Já estão marcados mas ainda recebo:
Olá, @gabrielkaka123. Bom dia! Tudo bem e com você?
A forma ideal de verificar os pagamentos de cobranças Pix é usando um webhook. Para isso, você configura através do endpoint PUT /v2/webhook/:chave, uma URL do seu site associada à chave Pix usada nas cobranças. Assim, quando uma cobrança for paga, a API do Efí envia automaticamente uma notificação para sua URL com um JSON contendo as informações do Pix.
Entre essas informações estará o txid (identificador do Pix que você emitiu). Com isso, você poderá fazer a conciliação e realizar processos como o envio do e-mail que deseja.
Se tiver qualquer outra dúvida, conte com a gente!
pessoal, boa noite! blz? meu webhook está sendo notificado, está retornando o id da empresa que definir na URl, porém não está vindo estrutura json nenhuma. na minha cabeça imagino que deveria vim, pois é baseado nela que vou gravar os registro do pagamento no meu sistema. o que estou fazendo de errado?
try {
// Verificar o estado da cobrança
const isCobAtiva = await verificarEstadoCob(txid);
if (!isCobAtiva) {
return res.status(400).json({ message: 'A cobrança não está ativa.' });
}
// Verificar o estado da configuração de Split
const isSplitAtivo = await verificarEstadoSplit(txid, splitConfigId);
if (!isSplitAtivo) {
return res.status(400).json({ message: 'A configuração de Split não está ativa.' });
}
// Garantir que os valores somam corretamente
const valoresValidos = await validarSomaValores(txid, splitConfigId);
if (!valoresValidos) {
return res.status(400).json({
message: 'O valor da cobrança não corresponde à soma dos valores do Split.',
});
}
// Vincular cobrança ao Split
const efipay = new EfiPay(options);
const resposta = await efipay.pixSplitLinkCharge({ txid, splitConfigId });
return res.status(200).json({
message: 'Cobrança vinculada ao split com sucesso!',
data: resposta || 'sem dados de retorno',
});
} catch (error) {
console.error('Erro ao vincular cobrança ao split:', error);
return res.status(500).json({
message: 'Erro ao vincular cobrança ao split',
error: error.message || 'Erro desconhecido',
});
}
});
O parâmetro está derra forma:
exports.pixSplitLinkCharge = functions.https.onRequest(async (req, res) => {
// Verifica se o método HTTP é POST
if (req.method !== 'POST') {
return res.status(405).send('Método não permitido');
}
// Obtém os dados do corpo da requisição (txid e splitConfigId)
const { txid, splitConfigId } = req.body;
// Verifica se os parâmetros necessários foram fornecidos
if (!txid || !splitConfigId) {
return res.status(400).send('Parâmetros txid e splitConfigId são obrigatórios.');
}
// Configuração dos parâmetros para o split de cobrança Pix
let params = {
txid: txid, // O ID da transação Pix
splitConfigId: splitConfigId // O ID da configuração de split
};
// Inicializa o EfiPay com as credenciais
const efipay = new EfiPay(options);
try {
console.log('Enviando solicitação para pixSplitLinkCharge:', params);
// Faz a solicitação para vincular o split à cobrança Pix
const resposta = await efipay.pixSplitLinkCharge(params);
// Verifica se a resposta tem conteúdo, caso contrário retorna mensagem padrão
if (resposta) {
return res.status(200).json({
message: 'Cobrança vinculada ao split com sucesso!',
data: resposta || 'sem dados de retorno'
});
} else {
return res.status(200).json({
message: 'Cobrança vinculada com sucesso!',
});
}
} catch (error) {
// Lida com erros da API e retorna uma resposta de erro
console.error('Erro ao vincular cobrança ao split:', error);
return res.status(500).json({
message: 'Erro ao vincular cobrança ao split',
error: error || 'error'
});
}
});
conseguem me informar como é esse json que vcs me retornam?
No pagamento de uma cobrança Pix, você receberá a notificação dessa forma:
Bom dia, @adenilson2703! Tudo bem?
Segue um JSON de exemplo com o atributo conditional_discount. Neste caso, está sendo aplicado um desconto fixo de R$ 5,00 para pagamento realizado até o dia 19/12/2024. Você pode alterar o atributo type para percentage caso prefira aplicar o desconto em porcentagem.
Bom dia, pessoal!
Estou enfrentando um problema ao tentar implementar o split de pagamento com cartão no Bubble utilizando a API da Efí.
Estou configurando o endpoint https://cobrancas.api.efipay.com.br/v1/charge/one-step no API Connector do Bubble, mas ao testar a chamada, recebo o status code 401 e a mensagem: "There was an issue setting up your call.".
Já revisei minha configuração, mas não consigo identificar o que pode estar faltando. Existe algum detalhe específico relacionado à autenticação ou estrutura da requisição que devo considerar? Se alguém já passou por isso ou puder me dar uma dica, ficarei muito grato!
Body (Json):
'{
"items":[
{
"name":"nome",
"value": ,
"amount":1,
"marketplace":{
"repasses":[
{
"payee_code":"",
"percentage":
}
]
}
}
],
"payment":{
"credit_card":{
"customer":{
"name":"",
"cpf":"",
"email":"",
"birth":"",
"phone_number":""
},
"installments":1,
"payment_token":""
}
}
}'
PS C:\Users\aluno\OneDrive\Documentos\pagemnto\Pagamento_API> Invoke-WebRequest -Uri http://localhost:3090/criar-pix
>> -Method POST
>> -Headers @{"Content-Type" = "application/json"}
>> -Body '{"transaction_amount": "150.00"}'
>>
Boa tarde @gabmatos , tudo bem? O Node possui uma biblioteca nativa para resolução de caminhos. Veja se com ela o problema persiste: Documentação do Node.js - Path
Olá, estou tendo o seguinte problema para localizar meus certificados:
[1] Falha ao ler o certificado, verifique o caminho informado: ../pix/homologacao.p12
[1] Verifique o atributo sandbox e certificate, e garanta que eles estejam corretamente atribuidos para o ambiente desejado
Na estrutura de diretórios tenho a imagem anexa. Mesmo passando o path correto no credentials.js não é encontrado.
Conseguem me ajudar?
consegue me ajudar?
public function setupWebhook($webhookUrl)
{
$data = [
"webhookUrl" => $webhookUrl
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://pix-h.api.efipay.com.br/v2/webhook/' . $this->getClientKeyPix(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer {$this->getClientKeyPix()}",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
throw new \Exception("Erro ao configurar o webhook: $error");
}
return json_decode($response, true);
}
consegue me dizer se essa requisição para configurar o webhook esta correta?