Ir para conteúdo
View in the app

A better way to browse. Learn more.

Portal do Host

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[tutorial] - autologin whmcs

Featured Replies

Postado
  • Autor

Pessoal,

 

Eu testei aqui e deu certo, só que olha só. Quando o cara entra no link que o sistema gera eu não consegui colocar o autologin nele, exemplo:

 

 

Alguma sugestão?

 

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


Postado

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.


Postado
  • Autor

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!


Postado

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


Postado
  • Autor

Verdade João... Desculpe a falta de atenção... O script do m0rpheu5 não tem a variável para o ticket em si... Vou tentar localizar aqui maiores informações e já posto, OK?



Postado
  • Autor

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/


Postado
  • Autor

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!


Postado

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 


Postado
  • Autor

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.


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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Concorda com os nossos termos?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.