[Help] Fortumo Script проблем

Holder

New Member
Joined
Dec 27, 2010
Messages
434
Reaction score
43
Значи сложих скрипта на Му Онлайн от фортумо, обаче имам проблем с МТ страните като великобритания, латвия и т.н като пратят смс получават кредитите веднага, но в някои случаи услугата им стои Pending и след време става Failed или OK, ако стане Failed, значи са си взели безплатно кредитите и са нямали пари в картата за да ги платят, говорих с подръжката им, казаха ми да сложа отметка на I want to receive billing reports сложих, обаче пак става номера и ми казаха, че е нещо със скрипта.... говорих с онзи пич Branimir Rashkov, дето е нещо като поддръжка, тоест пратих му съобщения но така и няма отговор и нямам идея какво да правя.. това е скрипта, някой може ли да го редактира така, че да не се получава този бъг..

Code:
<?php
          ## Configuration Starts ##
          $credits = '2700'; // Credits to add
          $db_name = 'MuOnline'; // The Database
          $db_ip = '22.22.22.22'; // Server IP Adress
          $db_user = 'sa'; // MSSQL User
          $db_pass = 'qqqqqqq'; // MSSQL Password
          $sms_rank = '0'; // 1=on, 0=off
          ## Configuration Ends ##
          
          $forumtoIPs=array('81.20.151.38','81.20.148.122','79.125.125.1','209.20.83.207');
          $serverIP=$_SERVER['REMOTE_ADDR'];
          $username = $_GET['message'];
          
          if(!in_array($serverIP,$forumtoIPs)) die("Your IP isn`t in the list with permission!");
          if(!$username) die("You did not enter account name in The SMS");
          
          $connection = mssql_connect($db_ip, $db_user, $db_pass) or die('The Server has problem with Connection to database. Please contact the administrator!');
          mssql_select_db($db_name);
          
          $user_select = mssql_query("SELECT memb___id FROM MEMB_INFO WHERE memb___id='$username'");
          if(mssql_num_rows($user_select)==0) {
          $returns = "Account is incorrect or does not exist. The SMS wasn`t sent"; }
          
          else {
          $credits_select = mssql_query("SELECT credits FROM MEMB_CREDITS WHERE memb___id='$username'");
          $curcreditsa = mssql_fetch_row($credits_select);
          $curcredits = $curcreditsa[0] + $credits;
          
          if(mssql_num_rows($credits_select)>0) {
          mssql_query("UPDATE MEMB_CREDITS SET credits=credits+'$credits' WHERE memb___id='$username'");
          if ($sms_rank == 1) {
          mssql_query("UPDATE MEMB_INFO SET sms=sms+1 WHERE memb___id='$username'"); }
          
          $returns = "Your SMS was sent successfully. You add {$credits} credits to Account {$username} .Now You Have {$curcredits} credits.";
          }
          else {
          mssql_query("INSERT INTO MEMB_CREDITS (memb___id, credits) VALUES ('$username', '$credits')");
          if ($sms_rank == 1) {
          mssql_query("UPDATE MEMB_INFO SET sms=sms+1 WHERE memb___id='$username'"); }
          
          $returns = "Your SMS was sent successfully. You add {$credits} credits to Account {$username} .Now You Have {$curcredits} credits.";
          }
           }
          echo $returns;
          
          ?>
 
При мен съм го направил, че като погледна, че има някой който изпраща "Fail" смс му вземам номера и го вкарвам в "Black List" и така ако този номер изпрати отново смс независимо дали е "OK" или "Fail" не му се дават монети или там каквото и да е ами му изписва, че е в "Black List" на нашият сървър.

Мъчил съм се и с Fortumo и с Mobio да направим скрипт който да предотврати тези измами, но проблема е, че таксуването го отчита дали е "OK" или "Fail" когато потребителя получи отговор на смс-а си. Така преди това не може да се определи дали е с наличен кредит или не.
 
Във Mobio.bg доколкото помня го бяха оправили това, в менюто, което настройваш услугата в сайта им ИП, път към срктипа и т.н има Линк 1, който даваш път към скрипта и линк2, към втори скрипт, който те бяха дали за страни като тези, доколкото помня работеше ? - Сега съм ги попитал ще изчакам да ми отговорят в понеделник, как беше сещаш ли се иначе, за какво говоря и опитвал ли си го ?
 
Ти говориш за това нали:

PHP:
<?PHP

$message = $_REQUEST["mosms_text"];
$fromnum = $_REQUEST["fromnum"];
$tonum = $_REQUEST["tonum"];
$extid = $_REQUEST["extid"];
$smsID = $_REQUEST["smsID"];
$servID = $_REQUEST["servID"];
$operator = $_REQUEST["operator"];
$price = $_REQUEST["price"];
$currency = $_REQUEST["currency"];
$billing_status = $_REQUEST["billing_status"];

$mobio_remote_addrs = array("87.120.176.216", "194.12.244.114");

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

	if ($billing_status == "Failed") { 

                // Payment Failed				
		// delete user from VIP, delete given credits, etc

	}else if ($billing_status == "OK") { 

                // Payment OK
		// no action necessary
		
	}	
        echo 'OK';
}
?>
 
  • Like
Reactions: Holder
В мобио има начин да се оправи, за фортумо не знам
 
Не помня дали е това но бачкаше, питал съм ги да ми дадът линк отново към този скрипт, ще го дам в понеделник, те не отговарят съб и неделя, но общо взето се прави това:

1. Нормален скрипт за мобио за даване на кредити за МУ
2. Втори скрипт за подобни страни, за него даваш линк в url #2 в настройката на системата на мобио..

Както казах, в понеделник ще го дам, щото го нямам вече, от одавна не ползвам мобио, но работи може пък да успееш да го преправиш за Фортумо, знае ли човек, има са некъв пратил 20 смс-са "Failed" и ми вика, защо ме окраде върни ми кредитите ще те съдя :D някакъв от великобритания, прави сметка :D
 
Може само да те хване за чепа ;-) аз примерно от Великобритания съм нямал проблеми ;-)

Дано сега са намерили начин Мобио на този неприятен проблем, но миналата година есента 2 седмици се мъчехме с системният им да намерим вариант с който да блокираме подобни злоупотреби, но се оказа, че за да получиш този статус те трябва да получат отговора от теб и тогава системата отчита какъв е статуса на SMS-а.
 
Мобио доколкото знам, прави следното не знам дали сте се опитали да го направите това ?
- Праща СМС, получава отговор, че са му заредени кредитите дори и да няма пари в картата а другия Скрипт 2-рия дефакто, проверява дали е платил, дали е имал пари в картата и ако е имал и е направил плащане ги оставя, ако останови, че няма пари в картата и не е направил плащане му отнема кредитите.. демек има кредитите за 3-4 сек и ако не е платил втория скрипт му ги изтрива дефакто и той бърка в базата данни, това опитахте ли се да го направите, помня почти на 100%, че това работеше при Мобио ?

1-вия скрипт, който дава кредитите и 2-рия който прави проверка и ги отнема, ако не е платил се поставяха като линкове в "Настройки на услугите", там където кофнгирурираш услугата.. Фортумо гледам има сходно линкче с тикче "I want to receive Billing Reports" и мисля, че там може да се сложи 2-рия скрипт ама дали ще работи ?
 
Last edited:
Няма ли да е по добре така:
Получава отговора - Проверяват скрипта ако е ОК 2рия скрипт адва ако е ЕРРОР няма да адва, това всичко ще го прави втория скрипт без търкане и такива глупости.
 
Last edited:
Ти говориш за това нали:

PHP:
<?PHP

$message = $_REQUEST["mosms_text"];
$fromnum = $_REQUEST["fromnum"];
$tonum = $_REQUEST["tonum"];
$extid = $_REQUEST["extid"];
$smsID = $_REQUEST["smsID"];
$servID = $_REQUEST["servID"];
$operator = $_REQUEST["operator"];
$price = $_REQUEST["price"];
$currency = $_REQUEST["currency"];
$billing_status = $_REQUEST["billing_status"];

$mobio_remote_addrs = array("87.120.176.216", "194.12.244.114");

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

	if ($billing_status == "Failed") { 

                // Payment Failed				
		// delete user from VIP, delete given credits, etc

	}else if ($billing_status == "OK") { 

                // Payment OK
		// no action necessary
		
	}	
        echo 'OK';
}
?>


Да за това става въпрос, сега ми дадоха линка и сега се сетих и съм 100% сигурен, че работи за мобио, защото имаше няколко човека от Latvia, дето бяха пратили SMS и имаше 15 смс-са един след друг на всеки един имаше подобен текст:

СМС-са е таксуван успешно имате 2500 кредита, при което втория скрипт е влязъл в сила и ги е отнел, тъй като таксуването е било неуспешно и всичките останали смс-си бяха с този текст 2500, 2500, 2500, вместо 2500, 5000, 7500 демек скрипта нон-стоп ги отнемаше и тъй като не знаех, кои държави са МТ, бях започнал да изчаквам да видя други държави имат ли го това.. бях мн доволен че баца.. може ли да се направи за фортумо тоя скрипт ?

Ето го и линка http://blog.mobio.bg/2010/08/статус-на-плащането-при-mt-таксуване/
 
Last edited: