Sistema Automático Moip!

sharematrix
em Tutoriais de Websites
  • 1
  • 2

sharematrix

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 28/07/10Posts: 189Char no Tibia: Diahbo

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

Avronex

Felicidade = (programando) ? 10 : 0
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 19/11/08Posts: 364Gênero: MasculinoChar no Tibia: Avronex Shiolalon

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

sharematrix

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 28/07/10Posts: 189Char no Tibia: Diahbo

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

Kelvin24

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/06/12Posts: 4Char no Tibia: argos etheits

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

sharematrix

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 28/07/10Posts: 189Char no Tibia: Diahbo

@Kelvin24

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

VictorWEBMaster

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 26/02/12Posts: 1062Gênero: MasculinoChar no Tibia: Tibjohiand Tito

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

Rajas

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 30/12/07Posts: 132Gênero: MasculinoChar no Tibia: Hannibol

a imagem ta off!

mesmo assim vlw ae pelo topico ajudou muita gente!!

sharematrix

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 28/07/10Posts: 189Char no Tibia: Diahbo

@falaaa

 

tá off não lol

aqui tá abrindo normal

Rajas

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 30/12/07Posts: 132Gênero: MasculinoChar no Tibia: Hannibol

@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

adminmuzao

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/06/11Posts: 6

IMAGEM OFF

091509154ee2168bd7c0f.jpg

sharematrix

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 28/07/10Posts: 189Char no Tibia: Diahbo

Imagem atualizada.

 

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

mesmo assim, troquei os links, talvez resolva agora

diarmaint

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 09/08/10Posts: 314Char no Tibia: não tenho

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

sharematrix

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 28/07/10Posts: 189Char no Tibia: Diahbo

tu tem a row group_id na tabela accounts?

 

ou então tu copiou errado.

diarmaint

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 09/08/10Posts: 314Char no Tibia: não tenho

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

fahel

Fahel
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/06/07Posts: 44

alguem sabe como resolver?

28lunv6.png

  • 1
  • 2