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

موضوع: کسی نمونه کد از درگاه جدید بانک شهر ( مبنا ) دارد ؟

  1. #1
    عضو انجمن us12 آواتار ها
    تاریخ عضویت
    Jul 2012
    نوشته ها
    244
    تشکر تشکر کرده 
    75
    تشکر تشکر شده 
    284
    تشکر شده در
    198 پست

    پیش فرض کسی نمونه کد از درگاه جدید بانک شهر ( مبنا ) دارد ؟

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

    پیشاپیش از همکاری شما تشکر میکنم.
    برنامه نویسی => www.SOFTIRAN.org
    ----------------------------------------------------------

  2. # ADS




     

  3. #2
    کاربر اخراج شده
    تاریخ عضویت
    Jan 2012
    نوشته ها
    198
    تشکر تشکر کرده 
    464
    تشکر تشکر شده 
    663
    تشکر شده در
    375 پست

    پیش فرض پاسخ : کسی نمونه کد از درگاه جدید بانک شهر ( مبنا ) دارد ؟

    سلام
    قبلا چیزی که برای من ایمیل کرده بودن این بود
    Night Download Manager
    رمز فایل : 123

    ولی چون برنامه نویس گفت مبنا خوب نیست به سامان کیش تغییر دادم

  4. #3
    کاربر اخراج شده
    تاریخ عضویت
    Sep 2013
    محل سکونت
    آنلاین سرور
    نوشته ها
    600
    تشکر تشکر کرده 
    26,926
    تشکر تشکر شده 
    1,769
    تشکر شده در
    1,338 پست

    پیش فرض پاسخ : کسی نمونه کد از درگاه جدید بانک شهر ( مبنا ) دارد ؟


  5. #4
    کاربر اخراج شده
    تاریخ عضویت
    Jan 2012
    نوشته ها
    198
    تشکر تشکر کرده 
    464
    تشکر تشکر شده 
    663
    تشکر شده در
    375 پست

    پیش فرض پاسخ : کسی نمونه کد از درگاه جدید بانک شهر ( مبنا ) دارد ؟

    نقل قول نوشته اصلی توسط glxx نمایش پست ها
    این پلاگین مربوط به درگاه قدیم خود بانک شهر هستش

  6. #5
    عضو انجمن rezaonline.net آواتار ها
    تاریخ عضویت
    Apr 2012
    محل سکونت
    Sanandaj | Tehran
    نوشته ها
    939
    تشکر تشکر کرده 
    1,556
    تشکر تشکر شده 
    2,338
    تشکر شده در
    1,230 پست

    پیش فرض پاسخ : کسی نمونه کد از درگاه جدید بانک شهر ( مبنا ) دارد ؟

    من یک کلاس نوشتم براش امیدوارم به دردتون بخوره
    کد:
    class MabnaGateway
    {
    	private
    			$merchant = "100110729900007" ,
    			$terminal = "10000046" ,
    			
    			$crn = 'rnd' ,
    			
    			$publicDirFile = 'pub_server.pem' ,
    			$privateDirFile ='prv.pem' ;
    			
    	
    	function __construct()
    	{
    		date_default_timezone_set('Asia/Tehran') ;
    		$this->publicDirFile = dirname(__FILE__) .'/pub_server.pem';
    		$this->privateDirFile = dirname(__FILE__) .'/prv.pem';
    		/*if( ! class_exists('nusoap_client'))
    			require_once dirname(__FILE__).'/nusoap.new.php';*/
    	}
    	
    	
    	function setPublicDirFile($_)
    	{
    		$this->publicDirFile = $_;
    	}
    	
    	function setPrivateDirFile($_)
    	{
    		$this->publicDirFile = $_;
    	}
    	
    	function setMerchant($_)
    	{
    		$this->merchant = $_;
    	}
    	
    	function setTerminal($_)
    	{
    		$this->terminal = $_;
    	}
    	
    	function setCrn($_)
    	{
    		$this->crn = $_;
    	}
    	
    	function num2en($num)
    	{
    		$arr1 = array(0,1,2,3,4,5,6,7,8,9);
    		$arr2 = array('a','b','c','v','g','b','n','m','r','t');
    		return str_replace($arr1,$arr2,$num);
    	}
    	
    	function getToken($amount , $orderID , $callback)
    	{
    		$client = new nusoap_client("https://mabna.shaparak.ir/TokenService?wsdl", 'wsdl');
    
    		$error = $client->getError();
    		if($error)
    		{
    			print_r($error);
    			die("<br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		
    		$source = $amount . $this->crn . "-{$orderID}" . $this->merchant . $callback . $this->terminal;
    		
    		/*
    		if( ! file_exists($this->publicDirFile))
    		{
    			die(" public file not found .<br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		*/
    		
    		$fp=fopen($this->publicDirFile,"r");
    		$pub_key=fread($fp,8192);
    		fclose($fp);
    		
    		$key_resource = openssl_get_publickey($pub_key);
    	
    		// Amount
    		openssl_public_encrypt($amount, $crypttext, $key_resource );
    		$Amount = base64_encode($crypttext);
    		
    		
    
    		// CRN
    		openssl_public_encrypt($this->crn . "-{$orderID}", $crypttext, $key_resource );
    		$CRN = base64_encode($crypttext);
    
    		// MID
    		openssl_public_encrypt($this->merchant, $crypttext, $key_resource );
    		$MID = base64_encode($crypttext);
    
    		// TID
    		openssl_public_encrypt($this->terminal, $crypttext, $key_resource );
    		$TID = base64_encode($crypttext);
    
    		// TID
    		openssl_public_encrypt($callback, $crypttext, $key_resource );
    		$referal = base64_encode($crypttext);
    		
    		/*
    		if( ! file_exists($this->privateDirFile))
    		{
    			die(" private file not found .<br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		*/
    		
    		// Sign data
    		$key = file_get_contents($this->privateDirFile);
    		
    		$priv_key = openssl_pkey_get_private($key);
    		$signature = '';
    		if( ! openssl_sign($source, $signature, $priv_key, OPENSSL_ALGO_SHA1)) 
    		{
    			die(" make signature error <br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		
    
    		$inputArray = array("Token_param" => array("AMOUNT" => $Amount,
    												   "CRN"    => $CRN,
    												   "MID"    => $MID,
    												   "REFERALADRESS" => $referal,
    												   "SIGNATURE" => base64_encode($signature),
    												   "TID" => $TID));
    		$WSResult = $client->call("reservation", $inputArray);
    
    		$error = $client->getError();
    		if($error)
    		{
    			print_r($error);
    			die("<br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		
    		if(empty($WSResult["return"]["token"]))
    		{
    			print_r($WSResult);
    			die("<br>token invalid in line ". __LINE__);
    		}
    		
    		$signature = base64_decode($WSResult["return"]["signature"]);
    
    		// state whether signature is okay or not
    		$ok = openssl_verify($WSResult["return"]["token"], $signature, $key_resource);
    		if($ok ==0 or empty($ok) or $ok!=1)
    			die("bad signature");
    	
    		// free the key from memory
    		openssl_free_key($key_resource);
    		
    		return $WSResult["return"]["token"];
    	}
    	
    	
    	function sendConfirmation($amount , $orderID)
    	{
    		if( ! isset($_POST['AMOUNT']) or ! isset($_POST['CRN']) or ! isset($_POST['TRN']) or ! isset($_POST['RESCODE']))
    		{
    			die('input invalid!');
    		}
    		
    		if(intval($_POST['RESCODE']) !=0)
    		{
    			return false;
    		}
    		
    		if($_POST['CRN']!=$this->crn . "-{$orderID}")
    			return false;
    		
    		if($_POST['AMOUNT']!=$amount)
    			die('invalid amount!');
    		
    		$client = new nusoap_client("https://mabna.shaparak.ir/TransactionReference/TransactionReference?wsdl", 'wsdl');
    
    		$error = $client->getError();
    		if($error)
    		{
    			print_r($error);
    			die("<br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		
    		
    		/*
    		if( ! file_exists($this->publicDirFile))
    		{
    			die(" public file not found .<br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		*/
    		
    		$fp=fopen($this->publicDirFile,"r");
    		$pub_key=fread($fp,8192);
    		fclose($fp);
    		
    		$key_resource = openssl_get_publickey($pub_key);
    		
    		// Amount
    		openssl_public_encrypt($_POST["TRN"], $crypttext, $key_resource );
    		$TRN = base64_encode($crypttext);
    
    		// CRN
    		openssl_public_encrypt($this->crn . "-{$orderID}", $crypttext, $key_resource );
    		$CRN = base64_encode($crypttext);
    
    		// MID
    		openssl_public_encrypt($this->merchant, $crypttext, $key_resource );
    		$MID = base64_encode($crypttext);
    		
    		/*
    		if( ! file_exists($this->privateDirFile))
    		{
    			die(" private file not found .<br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		*/
    		
    		// Sign data
    		$source = $this->merchant . $_POST['TRN'] . $_POST['CRN'];
    		$key = file_get_contents($this->privateDirFile);
    		
    		$priv_key = openssl_pkey_get_private($key);
    		$signature = '';
    		if( ! openssl_sign($source, $signature, $priv_key, OPENSSL_ALGO_SHA1)) 
    		{
    			die(" make signature error <br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		
    		
    		$inputArray = array("SaleConf_req" => array("MID"    => $MID,
                                                    "CRN"    => $CRN,
                                                    "TRN"    => $TRN,
                                                    "SIGNATURE" => base64_encode($signature)));
    
    		$WSResult = $client->call("sendConfirmation", $inputArray);
    		$error = $client->getError();
    		if($error)
    		{
    			print_r($error);
    			die("<br> in file :". __FILE__ ." in line : ". __LINE__);
    		}
    		
    		if(empty($WSResult["return"]["SIGNATURE"]))
    			die('error in connect server');
    		
    		$signature = base64_decode($WSResult["return"]["SIGNATURE"]);
    		$data      = $WSResult["return"]["RESCODE"].$WSResult["return"]["REPETETIVE"].$WSResult["return"]["AMOUNT"].$WSResult["return"]["DATE"].$WSResult["return"]["TIME"].$WSResult["return"]["TRN"].$WSResult["return"]["STAN"];
    		
    		$ok = openssl_verify($data, $signature, $key_resource);
    		if($ok == 1) 
    		{
    			$out = true;
    		} 
    		elseif ($ok == 0) 
    		{
    			$out = false;
    		} 
    		else 
    		{
    			$out = false;
    		}
    		
    		// free the key from memory
    		openssl_free_key($key_resource);
    		
    		return $out;
    	}
    }

  7. #6
    عضو انجمن us12 آواتار ها
    تاریخ عضویت
    Jul 2012
    نوشته ها
    244
    تشکر تشکر کرده 
    75
    تشکر تشکر شده 
    284
    تشکر شده در
    198 پست

    پیش فرض پاسخ : کسی نمونه کد از درگاه جدید بانک شهر ( مبنا ) دارد ؟

    نقل قول نوشته اصلی توسط glxx نمایش پست ها
    تشکر عزیز این ماژول را خودم نوشتم d: درگاه قدیمه .

    نقل قول نوشته اصلی توسط rezaonline.net;
    من یک کلاس نوشتم براش امیدوارم به دردتون بخوره
    کلاس خوبی بود.
    بازم تشکر نمونه کد ها را برام ارسال کردند و مشکل حل شد .
    برنامه نویسی => www.SOFTIRAN.org
    ----------------------------------------------------------

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

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

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

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

  1. پاسخ ها: 11
    آخرين نوشته: December 9th, 2015, 19:19
  2. پاسخ ها: 2
    آخرين نوشته: November 28th, 2013, 15:43
  3. پاسخ ها: 1
    آخرين نوشته: November 27th, 2013, 01:06
  4. پاسخ ها: 3
    آخرين نوشته: November 19th, 2013, 11:56

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

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