Integração com API Kinghost - Estou fazendo... :) - Design & Development - Portal do Host
Integração com API Kinghost - Estou fazendo... :)
By savio, November 6, 2010 in Design & Development
Sobre o módulo: Estou corrigindo e progredindo com o desenvolvimento deste módulo agora com auxilio do pessoal, aguardem novidades.
Em breve disponibilizarei aqui a versão de testes e um changelog, estamos entrando em fase final de produção!
Edited March 16, 2011 by savio
Parece que não estou com muito ibope né :P mas vamos assim mesmo... Enfim, hoje o Thiago da Kinghost corrigiu o bug no acesso à API e foi corrigido. Agora estou a 3 funções de concluir o módulo do WHMCS, em breve publicarei aqui freeware...
Desde que eles lançaram a API comecei a fazer alguns testes.
Infelizmente eles não tem um método para Suspender Domínio.
Até comentei isso com eles mas até agora nada isso já faz 7 semanas.
Estamos liberando as funções por partes, do contrário demoraria muito para lançar o produto "completo". Em breve teremos mais funções, liberadas a cada intervalo de dias.
Ate eles liberarem teremos que esperar.
Olá Edvan, Alejandro... consegui fazer muita coisa pra falar a verdade. É algo meio "bruto" mas parece funcionar legal (apesar que pode ser meio lento pra quem tem muitos cadastros), eu fiz mais duas funções aqui e em meus primeiros testes funcionaram legal...
Suspender Conta:
function kinghost_SuspendAccount($params) {
require_once('api/Dominio.php');
$dominio = new Dominio($params["serverusername"],$params["serverpassword"]);
$dominios = $dominio->getDominios();//Pega todos os dominios da revenda
$ponteiro = false;//Inicializa o ponteiro que varre os dominios
foreach($dominios['body'] as $i){if($i['dominio']==$params["domain"])$ponteiro = $i;}//Se o domínio é igual ao iterador, o ponteiro torna-se o domínio, é óbvio que faltam validações para tornar mais seguro, mas estou pensando no funcionamento primeiro...
if(!$ponteiro) {//Se não houver domínio igual ao que tentou executar comando....
$result = "Domínio não encontrado na revenda.";
} else {//Senão efetua o comando...
$dados = $dominio->getDadosDominio($ponteiro['id']);//Lista os dados do domínio....
if($dados['ativo']==0){//A propriedade 'ativo' indica se o domínio está ou não congelado, é o referente à Suspend/Unsuspend do Cpanel...
$result = "success";//Domínio já está bloqueado, então é sucesso.//Como ele já está congelado, então é redundante e exibe sucesso...
/*Tive que fazer isto manualmente pois classe php não tem função implementada.*/
$dominio->doCall( 'dominio/status/'.$ponteiro['id'] , '' , 'PUT');//Esta chamada está na API da kinghost, mas não foi implementada como função da classe Dominio.php, por isto eu fiz a chamada suja...
$acao = @json_decode($dominio->getResponseBody() , true);//Le resposta da chamada...
if($acao['status']=='ok')$result = "success";//Se conseguiu efetuar a ação, retorna sucesso pois bloqueou a conta...
else $result = $acao['body'];//Senão exibe a mensagem da API...
Assim fiz algumas dezenas de testes e pareceu funcionar bem, apenas que algumas vezes surtava e dava falso positivo. Mas como está em produção inicial creio que valha a pena.
Dentre todas as funções de integração do WHMCS, as que vem no modelo, a unica que estou com problemas agora é a ChangePassword, que altera tudo no cadastro exceto a senha rsrs mas pelo que vi, não haverá tanto trabalho assim efetuar a integração... só melhorar o código e creio que em uma ou duas semanas já está pronta pra testes comerciais. Ainda não fiz a ChangePackage, to sem tempo e criatividade, mas não será problema usando a cabeça ;)
Savio: Se eu estivesse em seu lugar venderia a soluçao a KingHost. Pois vai saber até quando voce será cliente deles. Não sendo pessimista, mas é um paradigma muito usado em administração. Se você ler "O Monge e o Executivo" você vai ver o conceito da pirâmide.... Na maioria das empresas, a piramide usada é a tradicional. Até pq a tradição em nosso país é sempre os "empresários" não se misturarem com o "chão de fábrica". Por esse e por outros é que amo meu atual emprego.
No Japão há um conceito bacana sobre isso: Os gerentes/diretores/presidentes são obrigados a lavar os banheiros da empresa periodicamente para "não perderem a humildade"
Mas de qualquer jeito, parabéns pela iniciativa.
Achei interessante sua iniciativa,
Este seu modulo, dispensa a necessidade de utilizar o painel deles?
A administração poderá ser feita totalmente pelo whmcs?
Abraços e boa sorte na empreita.
joaopaulo, é exatamente este tipo de pensamento que quero fugir! :) Eles tem uma equipe incrível de desenvolvedores PHP e por aí vai... não levariam 1 semana (indepentemente do tempo) pra fazer o que eu estou fazendo, mas o fato é que meu objetivo é fornecer uma solução prática e barata a todos. Então me perguntam onde eu teria lucro correto? Simples, OPEN-SOURCE! Suporte, instalação, adaptação, treinamento... tudo isto pode e deve ser levado em consideração quanto à busca pelo objetivo. Minha grande experiência é em desenvolvimento aplicado de soluções web, e sempre vejo pedidos para algo como este projeto que estou desenvolvendo, mas o interessante é que NENHUM cliente de fato contratou o serviço, é óbvio, uma solução deste tipo tem um valor considerável pela exclusividade e precisão, mas é inviável o desenvolvimento para vender poucas licenças. Por isto eu vejo nesta metodologia de negócio um ramo bem mais eficiente (para esta solução) a propagação open-source e lucro via serviços à venda de licenças e módulos. Eu acredito nesta visão e coloco em prática pois meu modelo de negócios é baseado no fator tempo de serviço e considero o desenvolvimento desta solução algo como um "cupom de descontos"... como você deve saber, é praticamente impossível impedir a pirataria, então ao invés de bloquear as licenças, ofereço algo mais avançado por um valor relativamente baixo. Lucro? Sim, pois o método de cálculo é bem diferente. Entendo perfeitamente seu ponto de vista e o aplico para algumas soluções que crio, mas esta especificamente já tive experiências que me levaram à esta ideia de projeto. Obrigado pelo incentivo!