McGuyver Postado Janeiro 14, 2015 Autor Postado Janeiro 14, 2015 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? 0 Citar
Visitante varallo Postado Janeiro 14, 2015 Postado Janeiro 14, 2015 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. 0 Citar
McGuyver Postado Janeiro 14, 2015 Autor Postado Janeiro 14, 2015 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×tamp=$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! 0 Citar
Visitante varallo Postado Janeiro 14, 2015 Postado Janeiro 14, 2015 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?: 0 Citar
McGuyver Postado Janeiro 14, 2015 Autor Postado Janeiro 14, 2015 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? 0 Citar
chuvadenovembro Postado Janeiro 14, 2015 Postado Janeiro 14, 2015 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. 1 Citar █ AtarWeb.com.br • Hospedagem de Site + SSL Grátis █ Revenda de Hospedagem DirectAdmin SSD + SSL Grátis
McGuyver Postado Janeiro 14, 2015 Autor Postado Janeiro 14, 2015 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/ 0 Citar
McGuyver Postado Janeiro 14, 2015 Autor Postado Janeiro 14, 2015 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×tamp=$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}&hash={$hash|md5}&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}&hash={$hash|md5}&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! 0 Citar
Visitante varallo Postado Janeiro 14, 2015 Postado Janeiro 14, 2015 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 0 Citar
McGuyver Postado Janeiro 14, 2015 Autor Postado Janeiro 14, 2015 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. 0 Citar
Posts Recomendados
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.