نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع: کمک و راهنمایی برای درگاه پرداخت پارسیان

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو جدید
    تاریخ عضویت
    Jan 2019
    نوشته ها
    0
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    0
    تشکر شده در
    0 پست

    پیش فرض کمک و راهنمایی برای درگاه پرداخت پارسیان

    با سلام
    بنده برای راه اندازی درگاه پرداخت اینترنتی پارسیان با مستندات جدید دچار مشکل شدم.
    لطفا هر کسی از دوستان میتونه کمک کنه تا این فایل رو با مستندات جدید ویرایش کنم و بر روی سایت نصب کنم.

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

    کد:
    <?phprequire_once 'functions.class.php';
    require_once '../funcs/mellat_lib/nusoap.php';
    
    
    class Parsian{
    	private $_pinCode,
    			$_client,
    			$_gatewayURL,
    			$_formURL,
    			$_callBackURL,
    			$_gatwayName;
    
    
    	public function __construct(){
    		global $options;
    		
    		$this->_gatwayName = _e('GATEWAY_PARSIAN', true);
    
    
    		$this->_pinCode 	= $options->PARSIAN_PINCODE;
    		$this->_gatewayURL 	= 'https://pec.shaparak.ir/pecpaymentgateway/eshopservice.asmx?wsdl';
    		$this->_formURL 	= 'https://pec.shaparak.ir/pecpaymentgateway?au=';
    		$this->_callBackURL = usersroot() . 'parsian_callback.php';
    
    
    		$this->_client = new nusoap_client($this->_gatewayURL, 'wsdl');
    	}
    
    
    	public function send_user_to_parsian($price, $orderId, $userId, $desc = '' ){
    		global $db;
    
    
    		$amount = (int) $price * 10;
    
    
        	$parameters = array(
                'pin' 		=> $this->_pinCode,
                'orderId' 	=> $orderId,
                'amount' 	=> $amount,
                'authority' => 0,
                'status' 	=> 1,
                'callbackUrl' => $this->_callBackURL,
            );
        	$params = array($parameters);
        	echo $this->connecting_message();
        	$result = $this->_client->call('PinPaymentRequest', $params);
        	if($this->_client->fault){
        		echo $this->connection_failure_message();
        	} else {
        		$err = $this->_client->getError();
        		if($err){
        			echo $this->connection_failure_message();
        		}else{
        			$authority = $result['authority'];
    				$status = $result['status'];
    
    
                	if ($authority > 0 && $status == 0 ) 
                	{
    
    
                		$pay = $this->insertPayment($orderId, null, $price, $authority, $userId );
    	            	if($pay){
    	            		$url = $this->_formURL . $authority;
    						Functions::redirect($url,1);
    	            	}else{
    	            		echo $this->connection_failure_message(666);
    	            	}
    	            }else{
    	                echo $this->connection_failure_message($status);
    	            }
        		}
        	}
    
    
    	}
    
    
    	public function isPaidDone(){
    		if( isset($_GET['au']) && isset($_GET['rs']) && !empty($_GET['au']) && trim($_GET['au']))
    		{
    			if( (int) $_GET['rs'] === 0 ){
    				return true;
    			}
    		}
    		return false;
    	}
    
    
    	public function insertPayment($saleOrderId, $saleReferenceId, $price, $refId, $userId, $done = 1, $settled = 1, $kind = 7){
    		global $db;
    		try
    		{
    			$sql = " INSERT INTO tbl_online_payments (user_id, price, sale_order_id, sale_refrence_id, ref_id, done, setteled, kind, date_created) 
    					 VALUES (:userId, :price ,:saleOrderId, :saleRefrenceId, :refId, :done, :setteled, :kind, :dateCreated)";
    			$stmt = $db->prepare($sql);
    			$stmt->execute(
    				array(
                        ':userId' => $userId,
                        ':price' => $price,
                        ':saleOrderId' => $saleOrderId,
                        ':saleRefrenceId' => $saleReferenceId,
                        ':refId' => $refId,
                        ':done' => $done, 
                        ':setteled' => $settled, 
                        ':kind' => $kind,
                        ':dateCreated' => date("Y-m-d H:i:s")
                    )
        		);
        		return true;
    		}catch(PDOException $e){
    			return false;
    		}
    	}
    
    
    	public function findReturnedPayment($refId)
    	{
    		global $db;
    		$sql  = " SELECT * FROM tbl_online_payments WHERE ref_id=:refId AND kind=:kind AND done=1 ORDER BY id DESC LIMIT 1";
    		$stmt = $db->prepare($sql);
    
    
    		$stmt->bindValue(':refId', $refId);
    		$stmt->bindValue(':kind', 7);
    
    
    		$stmt->execute();
    		if($stmt->rowCount() > 0)
    			return $stmt->fetch(PDO::FETCH_OBJ);
    		else
    			return false;
    	}
    
    
    	public function updatePayment()
    	{
    		
    	}
    	public function verifyRequest($authority){
    		$parameters = array(
                'pin' 		=> $this->_pinCode,
                'authority' => $authority,
                'status' => 1
            );
    		$params = array($parameters);
            $result = $this->_client->call('PinPaymentEnquiry', $params);
    		if($this->_client->fault){
    			return false;
    		}else{
    			$err = $this->_client->getError();
    			if($err){
    				return false;
    			}else{
    				return $result;
    			}
    		}
    	}
    
    
    	public function reversalRequest($saleOrderId){
    		$parameters = array(
                'pin' 		=> $this->_pinCode,
                'orderId' 	=> time(),
                'orderToReversal' => $saleOrderId,
            );
    		$params = array($parameters);
    
    
            $result = $this->_client->call('PinReversal', $params);
    		
    		if($this->_client->fault){
    			return false;
    		}else{
    			$err = $this->_client->getError();
    			if($err){
    				return false;
    			}else{
    				return (int) $result['status'];
    			}
    		}
    	}
    
    
    	public function settlementRequest($saleOrderId, $saleReferenceId){
    		$parameters = array(
                'terminalId' => $this->_terminalId,
                'userName' => $this->_username,
                'userPassword' => $this->_password,
                'orderId' => time(),
    	        'saleOrderId' => $saleOrderId,
    	        'saleReferenceId' => $saleReferenceId
            );
    
    
            $result = $this->_client->call('bpReversalRequest', $parameters, $this->_namespace);
    		
    		if($this->_client->fault){
    			return false;
    		}else{
    			$err = $this->_client->getError();
    			if($err){
    				return false;
    			}else{
    				return $result;
    			}
    		}
    	}
    
    
    	public function CheckBPMStatus($errCode){
           switch ($errCode) 
    	     {
    		  case 1:
    	        $tmess = _e('UNDEFINED_STATUS', true);
    		    break;
    		  case 20:
    	        $tmess = _e('INVALID_PIN', true);
    		    break;
    		  case 22:
    	        $tmess= _e('INVALID_PIN_IP', true);
    		    break;
    		  case 30:
    	        $tmess= _e('REUSED_TRANSACTION_CODE', true);
    		    break;
    		  case 34:
    	        $tmess= _e('REUSED_TRANSACTION_CODE', true);
    		    break;
    		  case 666:
    	        $tmess= _e('INVALID_TRANSACTION_CODE', true);
    		    break;
    		  default:
    		  	$tmess= _e('UNDEFINED_STATUS', true);
    		  	break;
    		 }	
    		return $tmess;
    	}
    
    
    	private function connecting_message(){
    		$output = "
    
    
    			<div class='payment-return' id='connecting' style='padding-top:50px' >
    	            <div class='container-fluid payment-info'>
    	                <div class='row'>
    	                    <div class='span12 mini-next-line text-center'>
    	                        <div class='payment-logo'> <img src='../images/payment-methods/parsian.png' width='120'> </div>
    	                        <p class='big-msg'> " . _e('CONNECTING_TO', true, array('{%1%}' => $this->_gatwayName)) . " </p>
    	                        <p class='big-msg'> " . _e('PLEASE_WAIT', true) . " </p>
    	                    	<img src='../images/ajax-loader2.gif'>
    	                    </div>
    	                </div>
    	            </div>
    	        </div>
    		";
    		return $output;
    	}
    
    
    	private function connection_failure_message($errCode= ''){
    		$output = "
    			<script language='javascript' type='text/javascript'>
    				document.getElementById('connecting').style.display = 'none';
    			</script>
    			<div class='payment-return' style='padding-top:50px'>
    	            <div class='container-fluid payment-fail'>
    	                <div class='row'>
    	                    <div class='span12 mini-next-line text-center'>
    	                        <div class='payment-logo'> <img src='../images/payment-methods/parsian.png' width='120'> </div>
    	                        <p class='big-msg'> " . _e('CONNECTION_REFUSED', true) . " </p>
    	                        ";
    	                        
    					        if(!empty($errCode))
    					        	$output .= $this->CheckBPMStatus($errCode);
    
    
    	    $output .= "
    	                        <p class='big-msg'> <a class='btn btn-inverse' href=''> <i class='icon-refresh'></i> تلاش مجدد </a><div class='clearfix'></div> </p>
    	                    </div>
    	                </div>
    	            </div>
    	        </div>
    	        <div class='next-line'></div>
    		";
    		return $output;
    
    
    	}
    
    
    }
    
    
    
    ?>

    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط agahifrasi : January 8th, 2019 در ساعت 12:30

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 0
    آخرين نوشته: November 15th, 2017, 12:41
  2. پاسخ ها: 2
    آخرين نوشته: August 7th, 2016, 22:03
  3. فروش استثنایی بک لینک سایت های رنک 6 و 4 و 3 با تخفیف بسیار بسیار ویژه
    توسط shaker1361 در انجمن درخواست خدمات سئو و بهینه سازی وب سایت
    پاسخ ها: 1
    آخرين نوشته: October 23rd, 2014, 15:35
  4. سوال بسیار بسیار مهم !! لطفا راهنمایی کنید
    توسط develop در انجمن سوالات و مشکلات
    پاسخ ها: 2
    آخرين نوشته: March 21st, 2013, 02:28
  5. پاسخ ها: 2
    آخرين نوشته: March 17th, 2011, 15:00

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •