SH

Sistema Automático Moip!

Por sharematrix, 19 de jul. de 2012 em Tutoriais de Websites

moip
sistema
automatico
sharematrix
otserv
tibia
script
23
15.7k
sharematrixS
19 de julho de 2012 às 17:19

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 Julho 30 por ShareMatrix

AvronexA
19 de julho de 2012 às 17:41

Cara adorei, a um tempo atrás eu tava procurando esses scripts, agora tu disponibilizou para nós, Rep+!

sharematrixS
19 de julho de 2012 às 17:45

@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 :]

Kelvin24K
20 de julho de 2012 às 02:17

nossa, to doidinho para usar esse sistema, tem como fazer para modern aac?

sharematrixS
20 de julho de 2012 às 11:07

@Kelvin24

É só mudar a função de pegar o ID da conta do player :]

VictorWEBMasterV
23 de julho de 2012 às 09:33

REP++, estava tenso de fazer um desses, vlw!!

RajasR
23 de julho de 2012 às 10:43

a imagem ta off!

mesmo assim vlw ae pelo topico ajudou muita gente!!

sharematrixS
23 de julho de 2012 às 15:44

@falaaa

 

tá off não lol

aqui tá abrindo normal

RajasR
29 de julho de 2012 às 16:19

@falaaa

 

tá off não lol

aqui tá abrindo normal

o meu esta dando esse error na imagem:

post-88847-0-20711200-1343589590_thumb.jpg

adminmuzaoA
30 de julho de 2012 às 17:58

IMAGEM OFF

sharematrixS
30 de julho de 2012 às 20:56

Imagem atualizada.

 

Não sei porque, mas aqui a imagem tava abrindo normal .-.

mesmo assim, troquei os links, talvez resolva agora

diarmaintD
04 de agosto de 2012 às 21:11

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

sharematrixS
07 de agosto de 2012 às 11:06

tu tem a row group_id na tabela accounts?

 

ou então tu copiou errado.

diarmaintD
08 de agosto de 2012 às 22:37

ii nem tenho esse group_id ñ :| que me da um help ?

3 semanas depois...
fahelF
28 de agosto de 2012 às 22:43

alguem sabe como resolver?

28lunv6.png