Jump to content

[tutorial] - autologin whmcs


McGuyver

Recommended Posts

Galera, depois de muito bater a cabeça para tentar colocar em funcionamento (com segurança) o módulo de Autologin do tópico à seguir ( http://portaldohost....?showtopic=4420 ), resolvi seguir por outro caminho.
A usuária Patty, que postou no mesmo tópico, deu uma dica sobre um outro sistema de Autologin ( http://portaldohost....t=40#entry75982 ), que eu achei bem interessente, entretanto tive que fuçar bastante para que ele funcionasse adequadamente.
Por esse motivo (e por muita gente ainda continuar postando naquele tópico por não conseguir fazer a coisa toda funcionar), resolvi criar um tutorial para colocar em funcionamento esse sistema de Autologin para o WHMCS.

Colocarei abaixo partes traduzidas (em tradução livre,claro :-D) do post do blog da WHMCSJet (http://www.whmcsjet....in-whmcs-email/), que desenvolveu o referido módulo. Caso encontrem algum problema, por favor me informem para que eu corrija, OK? Vamos lá....

Em primeiro lugar, vá para o admin do WHMCS. Coloque o mouse em Opções (Options) e clique em Modelos de Email (Email Templates). Clique no modelo no qual deseja colocar o link do autologin, para acesso direto à fatura, por exemplo. Vamos utilizar como exemplo o modelo "Invoice Created".
Acescente as linhas abaixo para gerar o link seguro no template. Vamos simplesmente adicionar um parâmetro que chamaremos de "hash" e utilizar o plugin 'cat' do Smarty:

Você poderá acessar sua fatura clicando no link abaixo:
{assign var='hash' value=$client_email|cat:"Sua_Chave_Secreta_AQUI"}

{$whmcs_url}/autologin.php?email={$client_email}&invoice={$invoice_num}&hash={$hash|md5}

Iremos checar esse parâmetro especial diretamente no servidor, através do script autologin.php. Para isso crie um arquivo chamado autologin.php e coloque o conteúdo abaixo. Grave-o e envie-o para a raiz da sua pasta WHMCS, por exemplo, '/public_html/meu_whmcs/' :

<?php
# Define WHMCS URL & AutoAuth Key
$whmcsurl = "http://seudominio.com.br/seu_whmcs/dologin.php"; #Substitua aqui o seu dominio e a pasta do seu WHMCS

# Evite o uso de caracteres diferentes de letras (maiusculas e minusculas) e numeros nas variaveis abaixo:
$autoauthkey = "sUa_ChaVE_dE_sEguRanCA_AquI"; #AutoAuth Key, ATENCAO: devera ser definida tambem no arquivo configuration.php!
$secret_key = "Sua_Chave_Secreta_AQUI"; #Deve ser a mesma definida no Modelo de Email (Email Template)

if (md5($_GET['email'].$secret_key) != $_GET['hash'])
die(); //Encerrando aqui porque o hash nao esta correto

$timestamp = time(); # Pega o horario atual
$email = $_GET['email']; # Email do Cliente para o Login
# A linhas abaixo esta desativada tambem:
# $goto = "clientarea.php"; # Aqui voce pode definir a sua pagina padrao

# Abaixo foi definida como pagina padrao a fatura desejada. Poderia ser utilizada outra pagina, como na linha comentada acima.
$goto = "viewinvoice.php?id=".$_GET['invoice'];

$hash = sha1($email.$timestamp.$autoauthkey); # Gera o Hash

# Gera a URL do AutoAuth & Redireciona
$url = $whmcsurl."?email=$email&timestamp=$timestamp&hash=$hash&goto=".urlencode($goto);
header("Location: $url");
exit;
?>

Agora acrescente no seu arquivo configuration.php a seguinte linha, alterando a sua chave de segurança e colocando a mesma definida no arquivo 'autologin.php':

$autoauthkey = 'sUa_ChaVE_dE_sEguRanCA_AquI';

(Atualização em 06/06/2017)

Caso esteja utilizando o WHMCS na versão 7.x adicione as linhas abaixo no arquivo configuration.php, logo após a linha citada acima, conforme dica do @chuvadenovembro:

// Politica de modelo de email personalizada:
$smarty_security_policy = array(
    'mail' => array(
        'php_modifiers' => array(
            'escape','count','md5'
        ),
    ),
);

 

Para facilitar estou anexando aqui o arquivo autologin.php. Basta editá-lo e alterar as linhas informadas.
Espero que isto aqui ajude muita gente, assim como está me ajudando.
Caso tenham dúvidas ou problemas, por favor me informem, e caso gostem, dê um "UP" no post!!! Hehehehe... ;-)

P.S.: Esse arquivo já está com a atualização para a versão 5.x, conforme informado pelo update no blog da WHMCSJet. Para usuários de versões anteriores há a necessidade do plugin 'concat' do Smarty e alteração na linha do template de '|cat:' para '|concat:'.

 

autologin.php

Edited by McGuyver
Atualização do post para a versão 7 do WHMCS
Link to comment
Share on other sites

Ao citar a entrada no configuration.php


$autoauthkey = 'sUa_ChaVE_dE_sEguRanCA_AquI'

Faltou o ";" no final e me deixou apreensivo por 5 minutos até identificar o porque meu sistema não estava carregando ;)

Excelente explicação, simples e objetiva. Abraço!

Ops... Vacilei feio!!! :-D

Valeu mesmo pelo toque, Cassiano.... Já corrigi o post! ;-)

Link to comment
Share on other sites

De que forma você pretende integrar? Acho que não entendi bem o que você precisa...

Para a visualização do ticket de suporte com o login da conta do cliente realizado, facilitando a resposta do mesmo.

Sei que existe a opção de colocar o canal de atendimento visível para todos, assim como habilitar a resposta sem a conta do cliente, mas também ficaria visível para qualquer pessoa visualizar e responder o chamado em nome do cliente...

Link to comment
Share on other sites

Aqui pra mim não funfou, com certeza fiz algo errado pois o que chega no e-mail não é o link completo:

Você pode ver e pagar a fatura acessando o link abaixo:

/autologin.php?email=&invoice=&hash=

Poderiam me dar uma luz, pois segui o tutorial, porém acho que falta alguma coisa. Versão do WHMCS 5.1.2

Fiquem com DEUS.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Do you agree with our terms?