Контакти | Въпроси и отговори | Общи условия | Конфиденциалност
Директна връзка с оператор
Контакти

SMS класация за MuOnline Webshop

Този скрипт позволява организирането на услуга за автоматично добавяне на кредити към профили в MuOnline Webshop. Допълнителна функционалност към скрипта за добавяне на кретиди е запазването на статистика за изпратените SMS-и от всеки акаунт така, че да е възможно да се организира класация по броя изпратени SMS-и. Резултатите от класацията могат да се използват за предоставяне на допълнителни бонуси (кредити) на играчите, изпратили най-много SMS-и.

За да работи скрипта е нужно да настройте в контролния панел на Mobio услуга от тип Известяване за плащане.
Информация за услугата "Известявна за плащане"
Конфигуриране на услугата "Известявна за плащане"
Видео-урок за услугата "Известявна за плащане"

Модула за SMS класация се състой от два файла: smslog.php и smsrank.php. Файла smslog.php обработва входящите SMS-и, като добавя нужните кредити към съответния акаунт и запазва статистика за броя на изпратените SMS-и за съответния акаунт. Файла smsrank.php показва текущите резултати от класацията и може да бъде променян така, че да съотвества с дизайна на Вашият сайт/webshop. За да видите текущите резултати от SMS класацията трябва да отворите URL адрес подобен на: http://vashiatsite.com/smsrank.php .

За да работи правилно модула е нужно да поставите двата файла smslog.php и smsrank.php в директорията на Вашият webshop и да промените следните параметри в скрипта:

  • $db_serv: IP адреса на Вашият MSSQL сървър
  • $db_user: Потребителско име за достъп до MSSQL сървъра
  • $db_pass: Парола за достъп до MSSQL сървъра
  • $db_name: Име на базата данни за MuOnline

Нужно е да направите промяната на тези параметри и в двата файла - smslog.php и smsrank.php

Файловете smslog.php и smsrank.php може да изтеглите от тук: smsrank.zip.
Сорс-код на файла smslog.php:

<?PHP
function mssql_real_escape_string($str) { return str_replace("'","''",$str); }

$item   = mssql_real_escape_string($_REQUEST["item"]);
$fromnum  = mssql_real_escape_string( $_REQUEST["fromnum"]);
$extid   = $_REQUEST["extid"];
$mobio_remote_addrs = array("87.120.176.216", "194.12.244.114");
$servID  = $_REQUEST["servID"];


$db_serv = '10.0.2.10';
$db_user = 'sa';
$db_pass = 'password';
$db_name = 'MuOnline';
$credits_to_add = '500';


if(in_array($_SERVER['REMOTE_ADDR'], $mobio_remote_addrs)) {

	$sms_reply = 'Greshka. Spazvaite to4no instrukciite';

	$conn = mssql_connect($db_serv, $db_user, $db_pass);
	if($conn) {
		mssql_select_db($db_name);

		mssql_query("IF NOT EXISTS(SELECT * FROM sysobjects 
			WHERE id = object_id(N'[dbo].[SMS_LOG]') AND 
			OBJECTPROPERTY(id, N'IsUserTable') = 1) 
			CREATE TABLE [dbo].[SMS_LOG] 
			( 
			[memb___id] [varchar] (50),
			[gsmnum] [varchar] (50),
			[smscount] [int] );");


		$res = mssql_query("SELECT * FROM SMS_LOG WHERE memb___id='$item'");
		if(mssql_num_rows($res)>0) {
			mssql_query("UPDATE SMS_LOG SET smscount=smscount+1 
								WHERE memb___id='$item'");
		}else{
			mssql_query("INSERT INTO SMS_LOG (memb___id, gsmnum, smscount) 
								VALUES('$item', '$fromnum', 1)");
		}

		$res = mssql_query("SELECT credits FROM MEMB_CREDITS WHERE memb___id='$item'");
		if(mssql_num_rows($res)>0) {
			mssql_query("UPDATE MEMB_CREDITS SET credits=credits+'$credits_to_add' 
								WHERE memb___id='$item'");
		}else{
			mssql_query("INSERT INTO MEMB_CREDITS (memb___id, credits) 
								VALUES('$item', '$credits_to_add')");
		}
		
		$res = mssql_query("SELECT credits FROM MEMB_CREDITS WHERE memb___id='$item'");
		if(mssql_num_rows($res)>0) {
			$row = mssql_fetch_row($res);
			$sms_reply = "Vashite krediti sa uspeshno zakupeni. Imate {$row[0]} crediti.";
		}

		file("http://mobio.bg/paynotify/pnsendsms.php?servID=$servID&tonum=$fromnum&extid=$extid&message=".urlencode($sms_reply));
	}
}
?>

Сорс-код на файла smsrank.php:

<h2 style="color:#2641A1;
		margin-left:auto;margin:20px auto 20px auto;
		font-weight:bold;">SMS Ranking:</h2>

<table align="center" width="375" cellpadding="0" cellspacing="0" border="0">

<tr style="text-align:center;font-weight:bold;color:#2641A1">
<td style="width:16px">#</td>
<td style="width:76px">Account</td>
<td style="width:97px">GSM Number</td>
<td style="width:87px;color:green">SMS count</td>
</tr>
<?
$db_serv = '10.0.2.10';
$db_user = 'sa';
$db_pass = 'password';
$db_name = 'MuOnline';

$conn = mssql_connect($db_serv, $db_user, $db_pass);
if($conn) {
	mssql_select_db($db_name);

	mssql_query("IF NOT EXISTS(SELECT * FROM sysobjects 
			WHERE id = object_id(N'[dbo].[SMS_LOG]') AND 
			OBJECTPROPERTY(id, N'IsUserTable') = 1) 
			CREATE TABLE [dbo].[SMS_LOG] 
			( 
			[memb___id] [varchar] (50),
			[gsmnum] [varchar] (50),
			[smscount] [int] );");

	$res = mssql_query("SELECT memb___id, gsmnum, smscount 
				FROM SMS_LOG ORDER BY smscount DESC");
	$pos = 1;
	while($row = mssql_fetch_object($res)) {
		$account = $row->memb___id;
		$gsmnum = substr($row->gsmnum, 0, 10)."**";
		$smscount = intval($row->smscount);

		echo '<tr>
		<td width="20" align="center">'.$pos.'</td>
		<td width="90" align="center">'.$account.'</td>
		<td width="150" align="center">'.$gsmnum.'</td>
		<td width="80" align="center">'.$smscount.'</td>
		</tr>';
		$pos += 1;
	}
}														
?>
</table>
Файловете smslog.php и smsrank.php сами създават нужните им таблици в MSSQL базата данни и не е нужно Вие да създавате таблиците.

Модула за SMS класация е достъпен в help.mobio.bg благодарение на нашият потребител DWBaHu0.