Ir para conteúdo

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

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

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?