Ir para conteúdo
  • Cadastre-se

Disponibilizando 2ª via de boleto no WHMCS


Posts Recomendados

  • Administração

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.

 

Aviary-netmundo-com-br-Picture-2.png

 

 

 

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.

'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

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

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?