Administração AngelCosta Postado Agosto 27, 2010 Administração Compartilhar Postado Agosto 27, 2010 Eu tenho me sentido celebridade ultimamente. Todo mundo atrás de mim para saber como se faz o lance da segunda via do boleto no WHMCS. Eu vou explicar a lógica aqui, pois cada boleto é um caso diferente - eu só fiz isso no meu - e não me responsabilizo pelas besteiras que vocês possam fazer. :) Avisos Isto é para módulos de boletos bancários. Não testei e nem o fiz para meios de pagamento online. Faça um backup do seu módulo de boleto. Não iremos fazer alterações no banco de dados, apenas pegar informações de lá. O mais importante de tudo: é preciso ter acesso direto ao seu boleto e não à página de cobranças do whmcs (aquela que parece uma nota fiscal). Um, dois, três e já Existem duas possibilidades: uma é você fazer isso a partir de seu site ou inserir o código diretamente nas páginas do WHMCS. Hoje, eu vou dizer como fazer para inserir no seu site. Qual o ID do campo CPF? No meu formulário, solicito apenas CPF para mostrar as cobranças em atraso. Então, é necessário ter um Custom Field para CPF. Se você ainda não tem, crie um: Acesse seu admin do WHMCS Vá em SETUP/Configurações > Custom Fields/Campos personalizados Crie um campo personalizado conforme a imagem abaixo Agora vamos descobrir qual o ID deste campo. Se é o primeiro que você cria, provavelmente o ID é 1, mas vamos nos certificar, abrindo o PHPMyAdmin > Seu banco de dados > Tabela tblcustomfields. Pronto, nosso ID é 1. O arquivo Agora, baixe o arquivo 2via-boleto: [download id=10839] Neste arquivo, você vai modificar 2 coisas: Na linha 25, altere 'INSIRA_O_ID_DO_CAMPO_CPF' para o ID que você encontrou(exemplo: '3') Na linha 54, inclua o link para o seu boleto Um jeito de saber se há um link direto para o seu boleto é o seguinte: no admin do seu whmcs, abra qualquer fatura não paga (como se fosse editar). Clique em Printable Version, quando o popup com a fatura aparecer, selecione o seu boleto e clique pagar. Agora observe a url formada no seu navegador. Ela traz o ID da fatura? Tente alterar o ID e usar o ID de uma outra fatura em aberto e veja se o boleto é gerado corretamente. Se funcionar, coloque essa url na linha 54, deixando o campo id=".$row['id']." E se a cobrança estiver vencida? Vocês observaram que na URL possui ainda uma outra variável: via=2 Se você não quiser fornecer segunda via a cobranças que já tiverem passado do vencimento, removam &via=2 da URL e vocês já acabaram este breve tutorial. MASSSSSSSSSS, Angélica, eu quero que o boleto venha com data atualizada pro cliente não ficar inadimplente e pagar esta bagaça logo sem me chatear! OK, sem problemas: Eu sou boazinha e quero que cada boleto (mesmo atrasado) seja gerado com data de vencimento para daqui a 2 dias. Preste atenção: este vencimento é apenas do boleto e não da cobrança do WHMCS. Eu faço isso pro cliente poder pagar o boleto no banco. Então, eu procuro no meu boleto a variável que define o vencimento. No caso do meu boleto tipo sinco da CEF, a variável é: $dadosboleto["data_vencimento"] = $data_venc; E logo depois dela eu adiciono o seguinte: //Crio uma função para adicionar mais X dias da data de HOJE function MaisDias($day,$toadd) { $tmp = explode("/",$day); $dadate = mktime(0,0,0,$tmp[1],$tmp[0]+($toadd),$tmp[2]); return date('d/m/Y',$dadate); } //Se vier com a variavel via é pq eh segunda via, //entao dar os dois dias, senao gera com data normal do WHMCS if (isset($_GET['via'])) { $hoje = date("d/m/Y"); // $dadosboleto["data_vencimento"] = MaisDias($hoje,2); } Exemplo: cobrança vencida há 10 dias. Se o cliente acessar o formulário e solicitar segunda via, vai poder pagar um boleto que vem com vencimento pra daqui a 2 dias. Para dar mais ou menos prazo altere MaisDias($hoje,2) Mudando 2 para o número de dias que deseja dar (a partir de hoje). Isso tudo é muito confuso! Sim, eu sei. O código pode não ser uma obra de arte, mas funciona. Caso tenha dificuldades, comente. Caso tenha preguiça ou uns poucos dinheiros sobrando, entre em contato que faço pra você. Quem quiser, pode enviar o módulo do boleto para que eu verifique se é possível fazer a segunda via. 0 Citar 'Cause he's my best friend, he's my pal. He's my homeboy, my rotten soldier. He's my sweet cheese. My good-time boy. Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 27, 2010 Compartilhar Postado Agosto 27, 2010 Angel, Legal. Uma sugestão é colocar um include e buscar os dados do configuration.php assim evita digitar dados do SQL ( usuário,senha, tabela ). Nas linhas 4 à 11 substituam por include 'configuration.php'; $servidor = "$db_host"; $usuario = "$db_username"; $senha = "$db_password"; $banco = "$db_name"; Assim não precisa digitar nenhum dado pois ele buscará do configuration.php. Lembrando que o arquivo precisa estar na raiz do WHMCS, caso queira colocar o arquivo em outro local aumente o nível do include. Abraços 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 27, 2010 Compartilhar Postado Agosto 27, 2010 Uma outra ideia é capturar o ID do customfield através do nome. SELECT id FROM tblcustomfields WHERE fieldname='CPF' 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 27, 2010 Compartilhar Postado Agosto 27, 2010 Pensei nisso também, mas tem gente que junta CNPJ no mesmo campo. Valeu, Ed, eu sabia que tu ia dar pitaco aqui! O que é sempre bem-vindo! 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 27, 2010 Compartilhar Postado Agosto 27, 2010 Olá! Essa 2ª via só funciona para quem tem boleto próprio ou tb funciona para quem usa boleto via pagseguro, moip, f2b, pagamentodigital, etc.. ? Obrigado! 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 27, 2010 Compartilhar Postado Agosto 27, 2010 Por enquanto é só para boleto bancário. Mas vou ver o que posso fazer para os outros meios. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 27, 2010 Compartilhar Postado Agosto 27, 2010 Muito bom o post Angélica! 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 27, 2010 Compartilhar Postado Agosto 27, 2010 show de bola Angelica.... No meu caso fiz o seguinte, eu ja mando o link de abertura do boleto direto no email template do cliente, retirei no arquivo boleto.php aquela obrigação de estar logado no whmcs pra ver o boleto... (tenho alguns clientes que tem dificuldades quanto a isso) Entao o que eu fiz, coloquei a sua função no arquivo e joguei a variável no link do template de email veja o exemplo: https://www.hostsagrado.com.br/whmcs/modules/gate... aguardo seu comentário 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 27, 2010 Compartilhar Postado Agosto 27, 2010 Ótimo, rômulo. Muito bom. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Agosto 28, 2010 Compartilhar Postado Agosto 28, 2010 Eu fiz uma pequena alteração, para ele só incrementar em X dias, se a data de hoje for o vencimento ou boleto já estiver vencido. O código das alterações ficou assim: $hoje = date("d/m/Y"); //Crio uma função para adicionar mais X dias da data de HOJE function MaisDias($day,$toadd) { $tmp = explode("/",$day); $dadate = mktime(0,0,0,$tmp[1],$tmp[0]+($toadd),$tmp[2]); return date('d/m/Y',$dadate); } //Se vier com a variavel via é pq eh segunda via, //entao dar os dois dias, senao gera com data normal do WHMCS if (isset($_GET['via']) && ($data_venc<=$hoje)) { // $dadosboleto["data_vencimento"] = MaisDias($hoje,3); } 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.
Nota: Sua postagem exigirá aprovação do moderador antes de ficar visível.