ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : نمونه کد آماده php برای درگاه بانک ملی سداد



peyman_m
February 18th, 2017, 13:04
با سلام و احترام

دوستان عزیز اگر کسی نمونه کد آماده درگاه بانک ملی سداد رو بصورت php داره برامون قرار بده

نمونه کدهای مختلفی در اینترنت موجود هست ولی با توجه به تغییرات ایجاد شده توسط شاپرک دارای مشکل هستند

نمونه کد آماده مد نظرم هست

با تشکر از همه دوستان

Farid.Agl
February 18th, 2017, 14:04
سلام، این کلاس رو 2 3 ماه قبل نوشتم و از اون زمان رو سایت داره استفاده میشه، به خوبی تست شده و می تونید ازش استفاده کیند.

روش استفاده رو بالای کلاس نوشتم.


<?php

/*
کد جهت ارسال به درگاه پرداخت
*/
$sadad = new Sadad([
'merchant_id' => '???',
'terminal_id' => '???',
'transaction_key' => '???'
]);


$request_key = $sadad->request(1, 1000, 'http://localhost/???.php');


// بررسی $request_key و انتقال کاربر به درگاه پرداخت
// ذخیره اطلاعات مورد نیاز مثل مبلغ، شماره سفارش و ... در دیتابیس
$sadad->redirect();


/*
کد جهت بررسی صحت تراکنش
*/
if ($sadad->verify($request_key, 1, 1000)) {
// تراکنش موفق بود
// ذخیره اطلاعات مورد نیاز در دیتابیس
} else {
// تراکنش ناموفق بود
}


class Sadad {


private $merchant_id;
private $terminal_id;
private $transaction_key;
private $form;
private $ref_no;


private $wsdl_url = 'https://sadad.shaparak.ir/services/MerchantUtility.asmx?wsdl';


public function __construct($params)
{
$this->merchant_id = $params['merchant_id'];
$this->terminal_id = $params['terminal_id'];
$this->transaction_key = $params['transaction_key'];
}


public function request($order_id, $amount, $callback)
{
$client = new SoapClient($this->wsdl_url);


$result = $client->PaymentUtility(
$this->merchant_id,
$amount,
$order_id,
$this->transaction_key,
$this->terminal_id,
$callback);


$this->form = $result['PaymentUtilityResult'];
return $result['RequestKey'];
}


public function redirect()
{
echo $this->form.'</form>';
echo '<script>window.onload=document.forms[0].submit();</script>';
}


public function verify($request_key, $order_id, $amount)
{
$client = new SoapClient($this->wsdl_url);


$result = $client->CheckRequestStatus(
$order_id,
$this->merchant_id,
$this->terminal_id,
$this->transaction_key,
$request_key,
$amount);


if ( ! empty($result) && isset($result['CheckRequestStatusResult']))
{
if ($result['CheckRequestStatusResult'] === 0)
{
$this->ref_no = $result['RetrivalRefNo'];
return TRUE;
}
else
{
return FALSE;
}
}


return FALSE;
}


public function get_ref_no()
{
return $this->ref_no;
}

}

rezaonline.net
February 18th, 2017, 23:45
http://www.rezaonline.net/blog/sadad-melli.html