PDA

View Full Version : مشکل در اتصال به زرین پال



r3za1985
یک شنبه 18 بهمن 1394, 16:29 عصر
باید بگم سیستم اختصاصی هستش. لطفا کد رو ببین قبلا به درگاه وصل میشد البته 2 یا 3 سال پیش ولی الان خطیی که میده اینه خطا شماره 1 یعنی اصلا سمت سرویس زرین پال نمیره همون تو ایجکس خطا میده موندم مشکل چیه ؟



function bank_visible()
{
if (document.getElementById('online').checked == true)
{
document.getElementById('bank_vis').style.visibili ty = 'visible';
}
else
{
document.getElementById('bank_vis').style.visibili ty = 'hidden';
}
}


function validate()
{
document.getElementById('zarinpal').disabled = true;
document.getElementById('offline').disabled = true;
document.getElementById('account').disabled = true;
document.getElementById('btnsubmit').disabled = true;

if (document.getElementById('zarinpal').checked == true)
{
document.getElementById("resp").innerHTML = '<font color="gray"><img src="http://'+url+'/images/loadpage.gif" border=0 align="texttop"> در حال اتصال... </font><br><br></center>';

$.ajax({
url: "http://"+url+"//pay.php",
data: "by=zarinpal&desc=خرید کالا",
type: "post",
error: function(){
document.getElementById("resp").innerHTML = "<font color=red>خطای شماره 1</font>";
},
success: function(data){
if (data == 'error')


البته ادامه کد رو نذاشتم چون تا همینجا اجرا میشه و خطا میده

خوب حالا اینم کد صفحه pay.php که بارگذاری میشه توسط جاوا


<?PHPsession_start();


define("SECURITY_CHECK" , "Reza");


require_once("inc/_public-class.php");
$admin = new _public();


require_once("setting.php");
$connection_string = '';
$do = '';
$connection_string = $admin->connection_mysql();
if ($connection_string == 'true')
{
switch ($_POST['by'])
{
case 'zarinpal' :
require_once("object/class.zarinpal.php");
$zpal = new zarinpal();
$zpal->apply();
$res = $zpal->request($_SESSION['total_amount'] , $_POST['desc']);
if ($res == false)
{
echo 'error';
}
else
{
if (isset($_SESSION['data']))
{
$sql = $admin->sql("insert into order_users (userid , total_amount , time , payed_by , refcode) values ('".$_SESSION['data']['id']."' , '".$_SESSION['total_amount']."' , '$time' , 'zarinpal' , '$res')");
if ($sql)
{
$orderid = mysql_result(mysql_query("SELECT LAST_INSERT_ID() FROM `order_users`") , 0);

while (list($id) = each($_SESSION['basket']))
{
$get = $admin->sql("select * from article where id = '$id' ");
$row = $admin->row($get);
$admin->sql("insert into basket (orderid , ordertable , userid , articleid , articletitle , articleamount , stamp) values('$orderid' , 'order_users' , '".$_SESSION['data']['id']."' , '$row[id]' , '$row[title]' , '$row[amount]' , '".time()."')");
$admin->sql("update article set count_sale = count_sale + 1 where (id = '$row[id]') limit 1");
}

echo $res;
}
else
{
echo 'error';
}
}
else
{
$sql = $admin->sql("insert into order_guest (ip , total_amount , time , payed_by , refcode , phone , email) values ('".$_SERVER['REMOTE_ADDR']."' , '".$_SESSION['total_amount']."' , '$time' , 'zarinpal' , '$res' , '$_POST[phone]' , '$_POST[email]')");
if ($sql)
{
$orderid = mysql_result(mysql_query("SELECT LAST_INSERT_ID() FROM `order_guest`") , 0);

while (list($id) = each($_SESSION['basket']))
{
$get = $admin->sql("select * from article where id = '$id' ");
$row = $admin->row($get);
$admin->sql("insert into basket (orderid , ordertable , userid , articleid , articletitle , articleamount , stamp) values('$orderid' , 'order_guest' , '".$_SESSION['data']['id']."' , '$row[id]' , '$row[title]' , '$row[amount]' , '".time()."')");
$admin->sql("update article set count_sale = count_sale + 1 where (id = '$row[id]') limit 1");
}

echo $res;
}
else
{
echo 'error';
}
}
}
break;

case 'offline' :
require_once("inc/date.php");
date_default_timezone_set('Iran');
$time = jgmdate("Y-m-d H:i:s" , time());

$sql = $admin->sql("insert into order_users (userid , total_amount , time , payed_by) values ('".$_SESSION['data']['id']."' , '".$_SESSION['total_amount']."' , '$time' , 'offline')");
if ($sql)
{
$orderid = mysql_result(mysql_query("SELECT LAST_INSERT_ID() FROM `order_users`") , 0);

while (list($id) = each($_SESSION['basket']))
{
$get = $admin->sql("select * from article where id = '$id' ");
$row = $admin->row($get);
$admin->sql("insert into basket (orderid , ordertable , userid , articleid , articletitle , articleamount , stamp) values('$orderid' , 'order_users' , '".$_SESSION['data']['id']."' , '$row[id]' , '$row[title]' , '$row[amount]' , '".time()."')");
$admin->sql("update article set count_sale = count_sale + 1 where (id = '$row[id]') limit 1");
}

echo $orderid;
}
else
{
echo 'error';
}
break;

case 'account' :

$user_amount = mysql_result($admin->sql("select amount from users where id = '".$_SESSION['data']['id']."' ") , 0);
if ($user_amount >= $_SESSION['total_amount'])
{
require_once("inc/date.php");
date_default_timezone_set('Iran');
$time = jgmdate("Y-m-d H:i:s" , time());

$sql = $admin->sql("insert into order_users (userid , total_amount , time , payed_by , payed_status) values ('".$_SESSION['data']['id']."' , '".$_SESSION['total_amount']."' , '$time' , 'account' , '1')");
if ($sql)
{

$orderid = mysql_result(mysql_query("SELECT LAST_INSERT_ID() FROM `order_users`") , 0);

while (list($id) = each($_SESSION['basket']))
{
$get = $admin->sql("select * from article where id = '$id' ");
$row = $admin->row($get);
$admin->sql("insert into basket (orderid , ordertable , userid , articleid , articletitle , articleamount , stamp) values('$orderid' , 'order_users' , '".$_SESSION['data']['id']."' , '$row[id]' , '$row[title]' , '$row[amount]' , '".time()."')");
$admin->sql("update article set count_sale = count_sale + 1 where (id = '$row[id]') limit 1");
}

echo $orderid;
}
else
{
echo 'error';
}
}
else
{
echo 'amount';
}
break;

default :
echo '<font color=red>اطلاعاتی دریافت نشد</font>';
die();
break;
}
}
else
{
echo $admin->system_message($connection_string);
}
?>

اینم کد کلاس زرین پال که آدرسش اینه تو فایل class.zarinpal.php





<?PHP


class zarinpal
{
var $mcode = 'myapi';
var $callback = 'mysite.com/zpal.php';
public $zpal;

function apply()
{
$client = new soapclient('https://de.zarinpal.com/pg/services/WebGate/wsdl', array('encoding'=>'UTF-8'));
$this->zpal = $client;
}

function request($amount = 1000 , $desc = 'خرید اکانت')
{
$res = $this->zpal->PaymentRequest((string) $this->mcode , (int) substr($amount , 0 , strlen($amount) - 1) , (string) $this->callback , (string) urlencode($desc));

if (strlen($res) == 36 and $res)
{
return $res;
}
else
{
return false;
}
}

function verify($au , $amount , $refID)
{
$res = $this->zpal->PaymentVerification((string) $this->mcode , $au , (int) substr($amount , 0 , strlen($amount) - 1) , $refID);
if ($res == 1)
{
return true;
}
else
{
return false;
}
}


}
?>