نمونه کد آماده php برای درگاه بانک ملی سداد
با سلام و احترام
دوستان عزیز اگر کسی نمونه کد آماده درگاه بانک ملی سداد رو بصورت php داره برامون قرار بده
نمونه کدهای مختلفی در اینترنت موجود هست ولی با توجه به تغییرات ایجاد شده توسط شاپرک دارای مشکل هستند
نمونه کد آماده مد نظرم هست
با تشکر از همه دوستان
پاسخ : نمونه کد آماده php برای درگاه بانک ملی سداد
سلام، این کلاس رو 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;
}
}
پاسخ : نمونه کد آماده php برای درگاه بانک ملی سداد