CitarÍNDICE:
Muy buenas comunidad, hoy me he tomado la molestia de crear una guía para que podáis tener en vuestro servidor un sistema de donaciones automáticas mediante el uso de SMS y totalmente configurable para vuestros servidores privados!
Yo personalmente la tengo en mi servidor, y sin duda es el método más cómodo de donación para los usuarios, ya que es solo con el móvil y además puedes configurarlo para que cuando envíe el usuario un SMS, obtenga un item (yo por ejemplo tengo dentro del servidor el item "Euro") y poder comprar en el GM Shop de vuestro servidor con el uso de ese item en especial.CitarINFORMACIÓN ADICIONAL:
PayGol es un servicio de pagos en línea que hace de una manera fácil y segura para pagar por contenido digital y virtual usando tu teléfono móvil. Realizar compras en muchos de tus juegos favoritos, de entretenimiento y sitios sociales pueden ser cargados a una cuenta de teléfono usando PayGol. No se requiere tener una cuenta bancaria o tarjeta de crédito.
CitarGUÍA DE INSTALACIÓN:
1.- Archivos Web:Lo primero de todo es añadir a vuestra página web los archivos ".html" y ".php" del sistema de donaciones SMS (Paygol) para que funcione correctamente y poder configurarlo más adelante a vuestro gusto.CitarPaygol.php
Button-sample.html (ejemplo)
Failed.html (ejemplo)
Success.html (ejemplo)
- Descarga U3shared: Descargar (http://www.united-extreme.com/u3games/comunidades/l2/index.php?action=dlattach;topic=203.0;attach=158)
- Descarga Mediafire: Descargar (http://www.mediafire.com/download/ndte3cavqvdvz4s/Lineage+II+sms+donate.rar)
Una vez descargado, descomprimido y colocado en el directorio de vuestra web, tenemos que configurarlo. Para ello nos vamos al archivo "paygol.php" y cambiamos/añadimos los parámetros de conexión a vuestra base de datos:$dbhost = "Your DB Host";
$dbuser = "Mysql UserName";
$dbpass = "Mysql Password";
$dbname = "Gameserver database";
Cantidad de items a entregar al realizar una donación: //Let's define 100 coins per donation
$coins = 100;
ID del objeto a entregar://Define the item_id
$item_id = '9142';
2.- Crear cuenta en PayGol:Como es de lógica, tendremos que registrarnos en PayGol, para que nuestro sistema de donaciones automático vía SMS funcione correctamente.
Para ello pinchamos en la imagen/link de a continuación y procedemos con el registro!(https://secure.paygol.com/images/banners/728x90/es.jpg) (http://www.paygol.com/register?affiliatecode=U4PI-ELLF-9FRX-IJO2)
3.- Crear Servicios:Un servicio es por así decirlo una donación SMS en concreto, me explico.. si queremos que al enviar un SMS te dé un único item y en otro tipo de SMS queremos que paguen más y obtengan más de un item, entonces necesitamos crear dos servicios; uno para cada tipo de donación SMS.
Para crear el servicio deseado nos vamos a la ventana de "Mis Servicios", le damos luego a "Crear Nuevo Servicio" y lo configuramos.[/i]
(http://sia1.subirimagenes.net/img/2013/12/25/131225052501166428.png)
4.- Configurar Servicios:
Antes de ponerlo en funcionamiento, debemos de probarlo. Para ello tenemos que terminar su configuración total, para ello nos vamos a.. Servicios >> Mis Servicios.
(http://sia1.subirimagenes.net/img/2013/12/25/131225053044659626.png)
En su configuración nos aparecerá lo que es el archivo "Paygol.php", es decir, lo configuramos y el código que os de resultado, lo coloquéis en el archivo Paygol.php de vuestra página web. A continuación os mostraré un ejemplo de ese documento:
<!-- PayGol JavaScript -->
<script src="http://www.paygol.com/micropayment/js/paygol.js" type="text/javascript"></script>
<!-- PayGol Form -->
<form name="pg_frm">
<input type="hidden" name="pg_serviceid" value="YOUR SERVICE ID">
<input type="hidden" name="pg_currency" value="EUR">
<input type="hidden" name="pg_name" value="test">
<input type="hidden" name="pg_custom" value="">
<input type="hidden" name="pg_price" value="1">
<input type="hidden" name="pg_return_url" value="http://MywebsiteName/donate/Success.html">
<input type="hidden" name="pg_cancel_url" value="http://MywebsiteName/donate/Failed.html">
<input type="image" name="pg_button" class="paygol" src="http://www.paygol.com/micropayment/img/buttons/125/black_en_pbm.png" border="0" alt="Make payments with PayGol: the easiest way!" title="Make payments with PayGol: the easiest way!" onClick="pg_reDirect(this.form)">
</form>
Además, recordar cambiar el valor de:
<input type="hidden" name="pg_custom" value="">
Por el de:
<input type="text" name="pg_custom" value="">
Para que nuestros usuarios puedan escribir el nombre de sus personajes en el panel de donaciones SMS.
5.- Probar Servicios:
(http://sia1.subirimagenes.net/img/2013/12/25/131225053800668459.png)
Seleccionamos el modo "Prueba" y probamos que funciona correctamente, en otras palabras, probar el sistema automático de donaciones SMS sin enviar SMS. Para ello, cuando nos pidan el código, utilizamos el de "123456" (Solo para modo test).
(http://i45.tinypic.com/2r4kk83.png)
Cuando no esté en modo prueba y lleven a cabo una donación via SMS, nos notificarán con un correo a la dirección indicada; informando lo siguiente:
Descripción del pago:
Id Servicio: Su ID de servicio
Id Transacción: 123456
Artículo: test
Pago: 1 EUR
Personalizado: Nombre del personaje
Teléfono móvil: 9999999999
Carrier: Pruebas
IP: IP dirección
Fuente: Slideshare (http://www.slideshare.net/paygol/paygol-automatic-sms-payments-in-lineage)
CitarMODIFICACIONES ADICIONALES BY Neeeeeeeeeel
¿Qué tiene de diferente con el de la guía?
-Borré todo lo que usa mysql_* porque está obsoleto y usé consultas preparadas con MySQLi object.
-Solo entrega las donaciones cuando el pj está offline (para evitar conflictos con los datos guardados en memoria cuando el pj está online).
-Log de transacciones, con fecha de creación, fecha de entrega y errores (si los hubiera).
-Soporte para multi-items. Se puede definir que para un SMS te dé distintos items con distintas cantidades.
-Anti flood (en la parte de procesamiento).
-Si el nombre del pj ingresado no existe en la base de datos, guarda la donación a la espera de la acción del admin.
¿Cómo lo instalo?
Para instalarlo tienen que hacer los mismos pasos que u3games explicó en su guía y además tienen que hacer algunas cosas extra que paso a explicar.
Luego de haber seguido todos los puntos de la guía de u3games (excepto la parte de cuando ponen los datos de la base de datos).
Lo primero que hacen es abrir el archivo config.php
El archivo contiene lo siguiente:
<?
$mysqli = new mysqli("MySQL IP", "USER", "PASSWORD", "DATEBASE_NAME");
$cantidades = Array(100,100000000);
$items = Array(9142,57);
?>
Completan los datos de SQL y luego se van a encontrar con 2 variables. Para la gente que no sabe programar, prestar mucha atención en este paso. Ahí se van a definir los items y las cantidades de cada item.
En el que empieza con $items tienen que poner adentro de Array() los item_id que quieren que se agreguen por donar separados por ,
Y en el que empieza con $cantidades tienen que poner las cantidades de cada item_id.
El primer item_id corresponde con el primer valor de cantidad que ingresan osea que en este caso si donan les daría 100 items con item_id 9142 y 100000000 del item 57 (adena)
La cantidad de comas (,) dentro de cantidades tiene que ser igual a la de items.
Es estrictamente necesario que los items entregados por donación sean apilables (que puedas tener mas de 1 en un solo cuadradito del inventario).
Una vez que hicieron eso, ahora tienen que crear una nueva tabla en la base de datos de su servdor. Para esto abren su Navicat (phpMyAdmin o lo que sea que usen como DBMSA), abren la base de donde tienen el server, ponen new query y pegan esto:
CREATE TABLE `donaciones_sms` (
`id` int(11) unsigned NOT NULL auto_increment,
`obj_id` int(11) unsigned default NULL,
`char_name` varchar(35) default NULL,
`procesada` int(1) NOT NULL default '0',
`fecha_creado` timestamp NOT NULL default CURRENT_TIMESTAMP,
`fecha_procesado` timestamp NULL default NULL,
`itemid` text,
`cantidad` text,
`error` int(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Le dejan ejecutar, run o lo que sea y no debería dar errores.
NOTA: Dependiendo del pack que usen la columna "obj_id" de la tabla characters puede cambiar de nombre como por ejemplo podría ser charId, deberán verificarlo y cambiarlo en donde se hace la consulta del obj_id en la tabla characters según su datapack.
Una vez hecho esto lo que tienen que hacer es crear un CRON hacia el archivo paygol.php?accion=procesar
Si ustedes tienen los archivos en http://www.miwebl2.com/donaciones/ entonces el CRON deben crearlo como http://www.miwebl2.com/donaciones/paygol.php?accion=procesar
¿Qué es un CRON?
Un cron de Apache lo que hace es ejecutar una URL (enviando un http request) y eso hace que nuestro php se ejecute y se actualizen las donaciones cada X tiempo, el tiempo es definido cuando crean el CRON. Recomiendo no poner menos de 5 minutos, 10 minutos sería prudente e ideal.
Tutorial de cómo crear cron con cPanel:
http://www.youtube.com/watch?v=AyDf2HhoMRE
Con respecto a la administración de LOGS.
Si en la tabla donaciones_sms buscan las filas que tienen error=1 eso quiere decir que el nombre ingresado en el formulario no fue encontrado en la base de datos en caso de que el admin encuentre el que hizo la donación debe cambiar el nombre, actualizar el obj_id (que lo puede encontrar buscando en la tabla characters con el nombre) y cambiar procesada a 0 y será entregada la donación.
Las filas que tienen error=2 son porque el item que pusieron como donación no es apilable. Si la donación tiene varios items, los items apilables de la lista total de items ya fueron entregados.
¿Las donaciones son instantáneas?
NO, son automáticas pero no instantáneas. Si ustedes ponen un cron cada 10 minutos y alguien hace una donación, si el personaje está offline lo máximo que puede tardar (en caso de que no haya error) son 10 minutos, si el pj está online, 10 minutos (como máximo, podria ser menos) después de que desloguea se entrega la donación. Todo depende de cada cuanto pongan el cron (no recomiendo poner menos de 5 minutos).