Ir para conteúdo

Sistema Automático Moip!


sharematrix

Posts Recomendados

Opa, beleza?

 

Faz muito tempo que não entro aqui no xtibia, mas agora vou começar a entrar denovo, e irei disponibilizar um sistema de pagamento automático do MoIP que criei, quando você receber o pagamento, o sistema adiciona os pontos AUTOMATICAMENTE na conta do jogador.

 

A primeira coisa é criar as tabelas do MySQL!

 

Vá no phpmyadmin e rode a query abaixo:

CREATE TABLE IF NOT EXISTS `moip_nasp` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `id_transacao` varchar(100) NOT NULL,
 `valor` int(11) NOT NULL,
 `status_pagamento` int(11) NOT NULL,
 `cod_moip` int(11) NOT NULL,
 `forma_pagamento` int(11) NOT NULL,
 `tipo_pagamento` varchar(100) NOT NULL,
 `email_consumidor` varchar(150) NOT NULL,
 `completed` int(11) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;
ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL AFTER `group_id`;

 

Agora, com as tabelas do MySQL criadas, crie um arquivo chamado retorno.php na pasta do seu website com o seguinte conteúdo:

(Por questão de segurança, mude o nome do arquivo de Retorno.php para outro, pois se alguma outra pessoa que viu este tutorial, poderá ficar enviando dados pra encomodar)

<?PHP
$conn = mysql_connect('localhost', 'root', 'xxx');
$db = mysql_select_db('otserv2');
$id_transacao = $_POST['id_transacao'];
$valor = $_POST['valor'];
$status_pagamento = $_POST['status_pagamento'];
$cod_moip = $_POST['cod_moip'];
$forma_pagamento = $_POST['forma_pagamento'];
$tipo_pagamento = $_POST['tipo_pagamento'];
$parcelas = $_POST['parcelas'];
$email_consumidor = $_POST['email_consumidor'];
if((!$cod_moip) or (!$status_pagamento)) {
Header('HTTP/1.1 500 Internal Server Error');
} else {
$queryMOIP = mysql_query("SELECT * FROM moip_nasp WHERE cod_moip = '$cod_moip';");
if(mysql_num_rows($queryMOIP) >= 1) {
 $Update = mysql_query("UPDATE moip_nasp SET `status_pagamento` = '$status_pagamento' WHERE cod_moip = '$cod_moip';");
 if(($status_pagamento == 1) or ($status_pagamento == 4)) {
  $Explode = explode("-", $id_transacao);
  $points = $valor / 100;
  $AddPoints = mysql_query("UPDATE accounts SET `premium_points` = '$points' WHERE id = '".$Explode[0]."';");
 }
} else {
 $Insert = mysql_query("INSERT INTO `moip_nasp` (`id`, `id_transacao`, `valor`, `status_pagamento`, `cod_moip`, `forma_pagamento`, `tipo_pagamento`, `email_consumidor`) VALUES (NULL, '$id_transacao', '$valor', '$status_pagamento', '$cod_moip', '$forma_pagamento', '$tipo_pagamento', '$email_consumidor');");
}
Header('HTTP/1.1 200 OK');
}
exit;
?>

 

No MoIP, o status 1 é Autorizado, e o status 4 é Concluído.

Ambos os status, querem dizer que o pagamento será creditado em sua conta, então não precisa ficar esperando liberar.

 

Beleza? criou? então vamos configurar o MoIP pra enviar os dados para sua URL, quando o pagamento for atualizado (Ex: Concluido, Autorizado)

 

Crie sua conta no MoIP: Clicando Aqui!

 

Depois de criada, vá para a página Meus Dados -> Preferências -> Notificação das transações

 

E configure a URL de notificação Assim:

aczsQhLj.png

Configurou? beleza, vamos pra próxima parte.

 

Agora, na página para comprar pontos no seu servidor, adicione este código para enviar os dados para o MoIP!

 

if(!$_POST['send2']) {
$content = '<b>MoIP / Boleto / Cartão de Crédito</b><BR>
Aqui você encontra tudo que é necessario para fazer sua doação com segurança e facilidade.<BR><BR>
<form action="" method="post" name="pag" onSubmit="return checkPag();">
<input type="hidden" name="method" VALUE="3">
Pontos: <input type="text" name="pontos" value="" size="5" maxlength="4"><BR><BR>Lembrando que cada point custa R$ 1,00<BR><BR>
<input type="submit" name="send2" value="Prosseguir">
</form><BR><a href="http://www.moip.com.br/" target="_blank"><img src="http://www.moip.com.br/imgs/banner_5_1.jpg" border="0"></a>';
} else {
$pontos = $_POST['pontos'];
$valor = $pontos * 100;
$content = '<b>MoIP / Boleto / Cartão de Crédito</b><BR>
Aqui você encontra tudo que é necessario para fazer sua doação com segurança e facilidade.<BR><BR>
<form action="https://www.moip.com.br/PagamentoMoIP.do" method="post">
<input type="hidden" name="id_carteira" VALUE="EMAILMOIP">
<input type="hidden" name="nome" VALUE="'.$account_logged->getCustomField("id").' Points - MEUOTSERV">
<input type="hidden" name="id_transacao" VALUE="'.$account_logged->getCustomField("id").'-'.rand(1000, 9999).'">
<input type="hidden" name="valor" VALUE="'.$valor.'">
Pontos: '.$pontos.'<BR><BR>Valor: R$ '.$pontos.',00<BR><BR>
Você tem certeza?<BR><BR>Se você não realizar o pagamento, sua conta poderá ser bloqueada.<BR><BR>
<input type="submit" name="send" value="Comprar!">
</form><BR><a href="http://www.moip.com.br/" target="_blank"><img src="http://www.moip.com.br/imgs/banner_5_1.jpg" border="0"></a>';
}

 

Você pode ver que o id_transacao irá ficar assim (ex: 2345-3244), os primeiros numeros antes da barra - são o ID da conta, e os últimos são o id da trasação, tente não remover isso, senão vai estragar o script TODO!

 

EMAILMOIP = email da sua conta no MoIP (que irá receber os pagamentos)

MEUOTSERV = nome do seu otserv.

 

Então é isso galera, eu uso esse sistema á um bom tempo, e nunca deu algum problema.

se tiverem alguma dúvida, perguntem aqui neste tópico.

 

OBS: funciona no ModernAAC também, só é necessário mudar a função de pegar o ID da conta do player logado.

 

Se acharem melhor baixar os arquivos, em vez de copiar e colar, os arquivos estão anexados no tópico.

Scan: https://www.virustot...sis/1342728882/

 

Se gostarem, REP+

:]

MoIP_ShareMatrix.zip

Editado por ShareMatrix
Link para o comentário
Compartilhar em outros sites

@Avronex

Opa, eu tenho ele a bastante tempo, faz quase 1 ano.

como eu usava no meu servidor antigo, e nunca quis disponibilizar ele, mas agora tou com outro servidor ai, e do nada me deu vontade de postar na net :]

Link para o comentário
Compartilhar em outros sites

ta dando esse erro aki qdo eu vo adicionar a query

 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL AFTER `group_id`' at line 13

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
×
×
  • Criar Novo...