Respostas

  • José boa tarde tranquilo

    de volta agora com mais tempo para voltar aos testes, irei efetuar os testes hoje ainda, lembrando que estou na versão 23.07 ainda kkk não atualizei.. porque tenho que mexer em um monte de outros plugins dashboard, etc.. que tenho de monitoramento no meu sistema.

  • Dando seguimento para quem está usando a versão 23.07 como eu e ainda não quiz atualizzar para a versão 24.xx para usar o novo formato e código da api..

     

    eu fiz uma alteracões no código original da api versão 23.07 para funcionar na opcão de titulo vencido ele informar junto o copia e cola qrcode pix   em formato pagina separada

     

    segue o código

     

    public function get_vencido($valor){

    $comandoSQL = "SELECT uuid_lanc AS uuid, login, status, tipo, valor, linhadig, datavenc, login, cpf_cnpj, sis_qrpix.qrcode AS pix
    FROM vtab_titulos
    LEFT JOIN sis_qrpix ON uuid_lanc = sis_qrpix.titulo
    WHERE (login = :valor OR cpf_cnpj = :valor)
    AND status = 'vencido' AND deltitulo = 0";

    $rotinaSQL = DB::prepare($comandoSQL);
    $rotinaSQL -> bindParam('valor', $valor);
    $rotinaSQL -> execute();
    $resultadosSQL = $rotinaSQL -> fetchAll();
    $numeroDeLinhas = $rotinaSQL -> rowCount();

    echo json_encode(array('Total' => $numeroDeLinhas, 'titulos' => $resultadosSQL));
    }             

     

     

    Depois no whatsapp bot codigo funcão para interpretar os dados enviados da api do mk-auth via jwt-token

     

    funcão que recebe os dados 

    // Função para buscar boletos vencidos do cliente pelo CPF no setor financeiro
    async function buscarBoletosVencidos(cpf) {
    const tokenJWT = fs.readFileSync(path.join(__dirname, 'token.txt'), 'utf-8');
    const url = `https://ip-do-mk-auth-aqui/api/titulo/vencido/${cpf}`;
    const agent = new https.Agent({ rejectUnauthorized: false });

    try {
    const response = await axios.get(url, {
    headers: { 'Authorization': `Bearer ${tokenJWT}` },
    httpsAgent: agent
    });

    // Process the response and return the overdue invoices along with the Pix QR codes
    const boletosVencidos = response.data.titulos.map(boleto => ({
    valor: boleto.valor,
    datavenc: new Date(boleto.datavenc.split(' ')[0]),
    linhadig: boleto.linhadig.replace(/[. ]/g, ''), // Remove dots and spaces
    pix: boleto.pix // Assuming 'pix' field is included in the API response
    }));

    // Sort the invoices by due date
    boletosVencidos.sort((a, b) => a.datavenc - b.datavenc);

    return boletosVencidos;
    } catch (error) {
    console.error('Erro ao buscar boletos vencidos:', error);
    return [];
    }
    }

     

     

    depois no tratamento que irá enviar a resposta do whatsapp bot ao cliente conforme na imagem abaixo

     

    else if (currentState.aguardandoCPFBolVencido) {
    const cpfCliente = msg.body.trim().replace(/\D/g, ''); // Formata o CPF para remover pontos e espaços
    const boletosVencidos = await buscarBoletosVencidos(cpfCliente);

    if (boletosVencidos.length > 0) {
    boletosVencidos.forEach(boleto => {
    let mensagemBoletoVencido = `Boleto vencido:\n💰 Valor: ${boleto.valor}\n📅 Vencimento: ${boleto.datavenc}\n🔢 Linha Digitável:\n${boleto.linhadig.replace(/\D/g, '')}\n`;

    // Envia a primeira mensagem com os detalhes do boleto
    client.sendMessage(msg.from, mensagemBoletoVencido).then(() => {
    // Envia a segunda mensagem apenas com o QR Code Pix após um breve intervalo
    setTimeout(() => {
    client.sendMessage(msg.from, `🔢 QR Code Pix:\n${boleto.pix}`);
    }, 1000); // Ajuste o intervalo conforme necessário
    });
    });
    } else {
    client.sendMessage(msg.from, 'Não foram encontrados boletos vencidos para este CPF.');
    }

    chatStates[chatId] = {}; // Resetar o estado
    }

     

     

    neste formato eu já consigo obter os dados que necessito no meu API bot whatsapp que estou desenvolvendo

     

    12385489274?profile=RESIZE_930x

This reply was deleted.