Ir para conteúdo
  • Cadastre-se

[tutorial] - autologin whmcs


Posts Recomendados

Visitante varallo

João, poderia explicar melhor o erro que ocorre para eu tentar te ajudar?

 

Vamos lá, eu consigo hoje direcionar para a página dos tickets, mas não consegui colocar o autologin para ir direto ao ticket em sí, pois a URL do ticket, tem duas verificações.

 

Como a seguir: 

 

 

www.seudominio.com.br/whmcs/viewticket.php?tid=871065&c=KTSgULw8

 

Eu gostaria de ajuda para colocar o autologin.

Link para o comentário
Compartilhar em outros sites

Vamos lá, eu consigo hoje direcionar para a página dos tickets, mas não consegui colocar o autologin para ir direto ao ticket em sí, pois a URL do ticket, tem duas verificações.

 

Como a seguir: 

 

www.seudominio.com.br/whmcs/viewticket.php?tid=871065&c=KTSgULw8

 

Eu gostaria de ajuda para colocar o autologin.

 

João, o m0rpheu5 postou anteriormente que ele criou um arquivos com nomes diferentes para cada situação e ele compartilho o código que utilizou para o autoticket.php (nome que ele deu ao segundo arquivo):

 

Funciona perfeitamente, eu aqui tenho o autofinan.php, autoticket.php e autologin.php, para ajudar, estou postando abaixo o conteúdo do autoticket.php que funcionou perfeitamente para mim.

<?php
# Define WHMCS URL & AutoAuth Key
$whmcsurl = "http://www.seusite.com.br/pastadowhmcs/dologin.php";
$autoauthkey = "CHAVE AUTOAUTHKEY"; #AutoAuth Key, ATENCAO: deveráer definida tambéno arquivo configuration.php !
$secret_key = "CHAVESECRETKEY"; #Deve ser a mesma definida no Modelo de Email (Email Template)

if (md5($_GET['email'].$secret_key) != $_GET['hash'])
# As duas linhas abaixo estãdesativadas
# header("Location: http://seudominio.com.br");
# exit;
die();//dying here because hash is not equal

$timestamp = time(); # Pega o horáo atual
$email = $_GET['email']; # Email do Cliente para o Login
# $goto = "clientarea.php"; # Here you can set default user page
# Aqui foi definida como pagina padrao a fatura desejada. Poderia ser utilizada outra pagina, como na linha comentada acima.
$goto = "supporttickets.php";

$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;

?>

Aqui funciona perfeitamente, o mesmo código eu uso para o autofinan e outro para o autologin, tudo rodando que é uma beleza.

 

Tente efetuar a criação desse outro arquivo com o código acima e coloque-o no seu template. Pelo que o m0rpheu5 citou o código funcionou normalmente!

Link para o comentário
Compartilhar em outros sites

Visitante varallo

João, o m0rpheu5 postou anteriormente que ele criou um arquivos com nomes diferentes para cada situação e ele compartilho o código que utilizou para o autoticket.php (nome que ele deu ao segundo arquivo):

 

 

Tente efetuar a criação desse outro arquivo com o código acima e coloque-o no seu template. Pelo que o m0rpheu5 citou o código funcionou normalmente!

 

@McGuyver,

 

Este caso, eu consegui usar. Só que se ver url para onde ele redireciona, é para a página de Tickets, e não ao ticket em sí, entende? 

 

O que quero dizer é o seguinte, olha o email que desenvolvi. Se ver, ele tem dois botôes, um que vai para o ticket e outro que vai para a página de tickets. O botão de chamados abertos estou usando o script que postou. E o botão do ver ticket, quando a pessoa clica, precisa logar sabe?:

 

x3vfyo.jpg

Link para o comentário
Compartilhar em outros sites

Pessoal,

 

Nem sei se isso aqui já foi compartilhado, mas achei em um site aqui, um link para o github do zmjwong. Lá ele disponibilizou um autologin, ver se é útil para alguém. Segue link:

 

https://github.com/zmjwong/whmcs-autoauth-invoice

Testei e funcionou.

Valew pela dica.

AtarWeb.com.br • Hospedagem de Site + SSL Grátis
█ Revenda de Hospedagem DirectAdmin SSD + SSL Grátis
Link para o comentário
Compartilhar em outros sites

Chuva, na verdade esse aí é basicamente o mesmo script que foi ajustado e adaptado pelo zmjwong ( o Jon que aparece nos comentários finais na página do script original: http://www.whmcsjet.com/autologin-link-in-whmcs-email/) e transformado em módulo para facilitar a instalação.  ;-)
 

No post do site original vocês podem notar que o próprio autor incorporou as modificações que eu sugeri e que postei aqui, na época! Heheheheeh!! \o/

Link para o comentário
Compartilhar em outros sites

Bem, depois de muito quebrar a cabeça aqui (lembrem-se que eu não sou programador, OK?), consegui fazer o sistema funcionar, alterando o autoticket do m0rpheu5 para o código abaixo:

WHMCS URL & AutoAuth Key
$whmcsurl = "http://www.seusite.com.br/pastadowhmcs/dologin.php";
$autoauthkey = "CHAVE AUTOAUTHKEY"; #AutoAuth Key, ATENCAO: deverá ser definida também no arquivo configuration.php !
$secret_key = "CHAVESECRETKEY"; #Deve ser a mesma definida no Modelo de Email (Email Template)

if (md5($_GET['email'].$secret_key) != $_GET['hash'])
# As duas linhas abaixo estão desativadas
# header("Location: http://seudominio.com.br");
# exit;
die();//dying here because hash is not equal

$timestamp = time(); # Pega o horário atual
$email = $_GET['email']; # Email do Cliente para o Login
# $goto = "clientarea.php"; # Here you can set default user page
# Aqui foi definida como pagina padrao o ticket desejado. Poderia ser utilizada outra pagina, como na linha comentada acima.
$ticketlink = $_GET['ticketlink'];
$c = $_GET['c'];
$goto = "viewticket.php".strstr($ticketlink,'?tid=')."&c=".$c;

$hash = sha1($email.$timestamp.$autoauthkey); # Generate Hash
 
# Generate AutoAuth URL & Redirect
$url = $whmcsurl."?email=$email&timestamp=$timestamp&hash=$hash&goto=".urlencode($goto);

header("Location: $url");
exit;

?>

Também será necessário alterar o(s) template(s) de e-mail de suporte com algo como:

<p>{assign var='hash' value=$client_email|cat:"CHAVESECRETKEY"}</p>
<p><a href="{$whmcs_url}/autoticket.php?email={$client_email}&amp;hash={$hash|md5}&amp;ticketlink={$ticket_url}" target="_blank">Clique aqui para acessar seu Ticket</a></p>

O importante é notar o link à ser utilizado. Segue abaixo apenas o link:

{$whmcs_url}/autoticket.php?email={$client_email}&amp;hash={$hash|md5}&amp;ticketlink={$ticket_url}

Como podem notar, na passagem de parâmetros para o autoticket.php é enviada a variável $ticket_url por último e no autoticket existe a captura da variável $c separadamente, pois por algum motivo as coisas não funcionaram como eu achava que funcionariam! Hehehehe... :-D

Creio que qualquer um com um pouco de conhecimento de programação possa descobrir o erro na extração do conteúdo da variável $ticket_url e corrigir o código!

 

De qualquer forma, pelos meus testes, isso aí funciona! ;-)

 

Testem, acertem o código e me informem, OK?

Abraços!

Link para o comentário
Compartilhar em outros sites

Visitante varallo

Obrigado mano, vou fazer uns testes.

 

Para eu utilizar este script, eu tive que tirar o "die();" da linha 12.

 

Será que não seria isso que está dando problema?

 

Vou efetuar os testes e retorno aqui se funcionou.

 

Mesmo assim agradeço novamente. ;D 

Link para o comentário
Compartilhar em outros sites

João, o die() só será executado se houver um erro de verificação do hash. Se você tirar ele o autologin não funcionará corretamente, pois em caso de um erro na verificação do código hash, ou seja, com uma string falsa, o script será executado normalmente, coisa que não deveria ocorrer.

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?