[right]
سلام
تا حالا کسی یک درگاه پرداخت آنلاین تو سایتش که با یی نوشته شده باشه پیاده سازی کرده؟
ممنون میشم اگه بتونین منو راهنمایی کنین
[/right]
[right]
سلام
تا حالا کسی یک درگاه پرداخت آنلاین تو سایتش که با یی نوشته شده باشه پیاده سازی کرده؟
ممنون میشم اگه بتونین منو راهنمایی کنین
[/right]
[right]
سلام
این سوال چند وقت پیش مشابهش پرسیده شده بود، بحث پرداخت آن لاین مربوط به بانک میشه و در فریمورک نکته خاصی نداره … در اصل شما با وب سرویسی که بانک در اختیارتون قرار میده کار میکنید، و هر بانک استاندارد های خاص خودش و روش کار خودش رو داره (متاسفانه)، پیشنهاد می کنم پس از دریافت اطلاعات وب سرویس، کارتون رو شروع کنید و اگر مشکلی بود در اینجا بپرسید.
[/right]
[font="Tahoma"][rtl]کلاسهای اکثر بانکها رو نوشتم برای کدوم بانک میخواید ؟[/rtl][/font]
سلام ممنون از پاسخ ها
بانک ملت بیستر مورد نظرمه
<?php
class mellat
{
const terminalID = 1000001;
const username = 'wssddff';
const password = 2655;
//const webservice = 'https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw';
//const webservice = 'https://pgwsf.bpm.bankmellat.ir:1443/pgwchannel/services/pgw';
const webservice = 'https://pgwsf.bpm.bankmellat.ir/pgwchannel/services/pgw';
/**
* method send request to bank and get authority!
*
* @param $price int , toman تومان
* @param $order_id int , unique id
* @param $callback string , callback site
* @return object , au: authority , go: bank link payment , status: the status of connection!
**/
public function request($price = NULL , $order_id = NULL , $callback = NULL)
{
$parameters = array(
'terminalId' => self::terminalID ,
'userName' => self::username ,
'userPassword' => self::password ,
'orderId' => $order_id ,
'amount' => $price * 10 ,
'localDate' => date("Ymd") ,
'localTime' => date("His") ,
'additionalData' => '' ,
'callBackUrl' => $callback ,
'payerId' => '0' ,
);
try
{
$client = new nusoap_client(self::webservice);
$err = $client->getError();
if($err)
return -6;
}
catch(Exception $e)
{
Logs::model()->add('خطا در اتصال به بانک ملت','خطا : '.strip_tags($err));
return -6;
}
$result = $client->call('bpPayRequest', $parameters, 'http://interfaces.core.sw.bps.com/');
//print_r($result);
$res = explode (',', $result);
if( ! isset($res[0]) or $res[0] != "0" or ! isset($res[1]))
return -6;
else
{
return strip_tags($res[1]);
}
return -6;
}
/**
* method to check verify transaction
*
* @param $price int , تومان
* @param $order_id int , unique order id
* @param $au string , authority code
* @return bool true/false
**/
public $SaleReferenceId = '';
public function verify($price = NULL ,$order_id = NULL , $au = NULL)
{
//print_r($_POST);
$RefId = @$_POST['RefId']; // notNeed
$ResCode = @$_POST['ResCode'];
$SaleOrderId = (int) @$_POST['SaleOrderId'];
$SaleReferenceId = @$_POST['SaleReferenceId'];
//Logs::model()->add('SaleReferenceId',$SaleReferenceId .'-'.$RefId);
$this->SaleReferenceId = $SaleReferenceId;
/**/
//check
if($SaleOrderId != $order_id or $RefId!=$au or ! isset($_POST['ResCode']))
{
Logs::model()->add('برگشت بانک ملت','خطا : ورودی نامعتبر است !');
return false;
}
if($ResCode !=0)
{
return false;
#Logs::model()->add('برگشت بانک ملت','خطا : پرداخت انجام نشد .');
}
try
{
$client = new nusoap_client(self::webservice);
$err = $client->getError();
if($err)
return false;
}
catch(Exception $e)
{
Logs::model()->add('خطا در برگشت ملت ','خطا : '.strip_tags($err));
return false;
}
$parameters = array(
'terminalId' => self::terminalID ,
'userName' => self::username ,
'userPassword' => self::password ,
'orderId' => $SaleOrderId ,
'saleOrderId' => $SaleOrderId ,
'saleReferenceId' => $SaleReferenceId
);
// Call the SOAP method
unset($result);
$result = $client->call('bpVerifyRequest', $parameters,'http://interfaces.core.sw.bps.com/');
// Check for a fault
//if ($client->fault)
//Logs::model()->add('برگشت بانک ملت','_خطا در اتصال به بانک .');
$err = $client->getError();
if ($err)
{
Logs::model()->add('برگشت بانک ملت',"__خطا : " . strip_tags($err) );
return false;
}
if(isset($result) and $result==0)
{
//settel
unset($result);
$result = $client->call('bpSettleRequest', $parameters,'http://interfaces.core.sw.bps.com/');
if ($client->fault)
{
Logs::model()->add('برگشت بانک ملت','خطا در اتصال به بانک .');
return false;
}
$err = $client->getError();
if ($err)
{
Logs::model()->add('برگشت بانک ملت',"خطا : " . strip_tags($err) );
return false;
}
if(isset($result) and $result==0)
{
return true;
}
}
return false;
}
/* go to bank by au */
public function go2bank($id='')
{
?>
<html><head><meta charset='utf-8' /></head><body>
please wait ...
<form name='myform' action='https://pgw.bpm.bankmellat.ir/pgwchannel/startpay.mellat' method='POST'>
<input type='hidden' name='RefId' value='<?php echo $id ?>'>
</form>
<script language='javascript'>document.myform.submit()</script>
<!-- MobinPal Payment Webservice System desiged by RezaOnline.net -->
</body></html>
<?php
die;
}
}
خیلی ممنون دمت گرم
[rtl]ایول آقا رضا. خیلی از فردین بازیت خوشم آمد.
موفق و پیروز باشی انشاءالله.
[/rtl]
[font="Tahoma"]آقایون من با order ID مشکل خوردم و موقع تست چند تا order ID زدم و الان که کار تمام شده به این مشکل خوردم که شاید order ID تکراری ایجاد بشه و تراکنش ارور بخوره به نظرتون چجوری مشکل رو حل کنم؟[/font]
[font="Tahoma"][rtl]+یک عدد بکنیدش خب مثلا از هزار شروع کنید[/rtl][/font]
از افزونه درگاه پرداخت سپرده استفاده کنید ، کاملترین نسخه اش رو دارن
درگاه پرداخت : https://sepordeh.com
سلام به همگی وقتتون به خیر
برای داشتن درگاه پرداخت در وبسایتتون بستگی داره چه جور فعالیتی انجام میدید و اسکیل کارتون چه قدره. اگه سایتتون کوچیکه و دنبال درگاه پرداخت بی دردسر هستید پرداخت یاری رو بهت پیشنهاد می کنم. اما اگه سایتتون برگه و نیاز به یه درگاه پرداخت معتبر تر هستید می تونید از درگاه پرداخت هوشمند استفاده کنید.