Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Mokėjimų sistema.
Parašė smart· 2010 Lap. 3 10:11:57
#1
Sveiki, turiu skriptą kuris yra sujungtas su ozz'o mokėjimų sistema.
Problema ta, kad kaip išsiunti žinutę, balansas mano svetainėje nepasipildo, o support'e meta klaidą:
Kreipinys: (FAILED) <a href='http://www.euroserveriai.eu/system/lib/webtopay/SMS-PAY.request.1.php?message=EUROP2+13229&amount=2&passkey=4ee0ff042cb9740d1&test=1' target='_blank'><span style='color:005C5B'>http://www.euroserveriai.eu/syst...amp;test=1</span></a>
Problema: 10 sek. TIMOUT, REDIRECT > 0 arba ERROR_REPORTING(0), bet faile yra klaida, arba failas negrąžina atsakymo 'OK'
Mano pay.php failas:
<?php
$kaina=2;
require('../../constants.inc.php');
require(SYSTEM.'main-settings.inc.php');
require(SYSTEM.'engine.mysql-config.inc.php');
mysql_connect($MYSQL_CONFIG["mysql_hostname"], $MYSQL_CONFIG["mysql_user"], $MYSQL_CONFIG["mysql_pass"]);
mysql_select_db($MYSQL_CONFIG["mysql_dbname"]);
$MY_SECRET = '4ee0ff042cb974***';
$fail = array(
"amount" => "Bloga suma<br />",
"keyword" => "Blogas KEYWORD<br />",
"uid" => "Blogas USER_ID<br />",
"msg" => "Blogas žinutės turinys<br />",
"fake" => "Netikras mokÄ—jimas<br />"
);
$err = ""; $OK = false; $userid = 0; $raktazodis = "";
if(isset($_GET['message']) && isset($_GET['amount']) && isset($_GET['passkey']))
{
$OK = $MY_SECRET == $_GET['passkey'] ? true : false;
if(!is_num($_GET['amount'])) $err .= $fail['amount'];
$message = explode(" ", $_GET['message']);
// $message[0] - GETVIP (RAKTAŽODIS)
// $message[1] - 1234 (USER_ID)
if(sizeof($message) == 2)
{
$raktazodis = (is_valid($message[0]) ? strtoupper($message[0]) : 0);
if(!$raktazodis) $err .= $fail['keywork'];
$userid = (is_num($message[1]) ? $message[1] : 0);
if($userid == 0) $err .= $fail['uid'];
} else
{
$err .= $fail['msg'];
}
} else
{
$err .= $fail['fake'];
}
if($OK && !$err)
{
$USER_ID = $userid;
$query = mysql_query("SELECT user_id FROM ".$MYSQL_CONFIG["tables_prefix"]."users WHERE user_id='".(int)$USER_ID."'");
if(mysql_num_rows($query) > 0) {
$query = mysql_query("UPDATE ".$MYSQL_CONFIG["tables_prefix"]."users SET user_balansas=user_balansas+".(($kaina/100)*$setting['procentas'])." WHERE user_id='".(int)$USER_ID."'");
echo 'Jusu balansas papildytas '.money_format('%i',(($kaina/100)*$setting['procentas'])).'LT. Aciu, kad naudojates musu paslaugomis! EuroServeriai';
} else {
echo "Toks vartotojas musu sistemoje nerastas.";
}
} else
{
echo $err;
}
// Ar tai skaičius?
function is_num($value)
{
if (!is_array($value)) {
return (preg_match("/^[0-9]+$/", $value));
} else {
return false;
}
}
// Ar tai geras raktazodis?
function is_valid($value)
{
if (!is_array($value)) {
return (preg_match("/^[a-zA-Z0-9]+$/", $value));
} else {
return false;
}
}
?>
Parašė ozzWANTED· 2010 Lap. 3 12:11:33
#2
O ką gražina default pavyzdinis skriptas. Ir AR tu savo saite nusiskaitai TEST sms duomenis. Dar pabandyk tiesiogiai į naršyklę įvesti adresą, kuris parašytas prie debug. Ir pažiūrėk ar naršyklėje bus teisingas atsakymas.
Redagavo ozzWANTED· 2010 Lap. 3 13:11:54
Parašė smart· 2010 Lap. 3 13:11:57
#3
Man išmeta baltą lapą :|
Parašė ozzWANTED· 2010 Lap. 3 13:11:12
#4
Nu tai blogai. Turi išmest reikalaujamą atsakymą. Peržiūrėk kodą, kažkur klaida.
Parašė smart· 2010 Lap. 3 13:11:37
#5
Grybauju aš tam kode ryškiai, gali padėt?
Parašė ozzWANTED· 2010 Lap. 3 13:11:46
#6
Įsijunk error_reporting(E_ALL); visų pirma, arba testuok localhoste. Tai bent errorus parodys.
Parašė smart· 2010 Lap. 3 16:11:47
#7
Turiu kodą:
$query = mysql_query("UPDATE ".$db_prefix."users SET user_balansas=user_balansas+".(($_GET['amount']/100)*$procentas)." WHERE user_id='".(int)$USER_ID."'");
echo 'Jusu balansas papildytas '.money_format('%i',(($_GET['amount']/100)*$procentas)).'LT. Aciu, kad naudojates musu paslaugomis! EuroServeriai';
} else {
echo "Toks vartotojas musu sistemoje nerastas.";
}
pagal viską, išsiuntus sms 2 lt turiu gaut į balansą 0.82ct, bet man prideda 0, ką daryt? :(
Redagavo smart· 2010 Lap. 3 16:11:02