سلام، این کلاس رو 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; } }





پاسخ با نقل قول