Ir para conteúdo
  • Cadastre-se

[tutorial] - autologin whmcs


Posts Recomendados

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

Editado por McGuyver
Atualização do post para a versão 7 do WHMCS
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 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.

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?