به منظور استفاده و اتصال به وب سرویس نیاز است روی هاست شما SOAP فعال باشد, البته در صورتی که روی هاست شما SOAP فعال نباشد, میتوانید کتابخانه NuSOAP را در اسکریپت / برنامه تان include یا فراخوانی کنید, همچنین میتوانید به جای استفاده از SOAP یا فراخوانی کتابخانه NuSOAP از وب سرویس CURL / Restful استفاده کنید.

وب سرویس


در این نوع وب سرویس کلیه درخواست ها باید به آدرس https://parsipal.ir/webservice/soap/?wsdl ارسال شوند, لذا در کد نویسی دقت داشته باشید آدرس وب سرویس SOAP / NuSOAP به شکل زیر خواهد بود :
https://parsipal.ir/webservice/soap/?wsdl

واژگان



1. پذيرنده : شخص ، سازمان و يا شركتي كه محصول يا سرويسي را از طريق اينترنت ارائه مي كند.
2. خريدار : شخص دارنده كارتهاي شتاب يا حساب پارسی پال كه قصد خريد يا دريافت سرويس از جانب پذيرنده اي را دارد.
3. بانك عامل : بانكي است كه خريدار در پارسی پال انتخاب نموده و اطلاعات كارت شتاب خود را در آن سايت وارد مينمايد.
4. تراكنش : يك عمليات مالي، كه در اين نوشته مصداق آن يك خريد مي باشد.
5. رمزينه : نوعي نمايش تصويري اطلاعات بر روي سطوح است كه اطلاعات آن را ميتوان توسط ماشين بازخواني كر

مکانیزم کلی درگاه پرداخت پارسی پال بر دو اصل سادگی و امنیت پایه ریزي شده است. بطوریکه یک برنامه نویس با خواندن نکات ، درك مفاهیم و دیدن sample کدهاي موجود در این بخش به راحتی و در کمتر از 10 دقیقه می تواند سایت شما را به سیستم پرداخت پارسی پال متصل نماید

امنیت :
در عین سادگی پارسی پال از مکانیزم هاي امنیتی استفاده می کند تا تراکنش ها در امنیت کامل انجام شوند.

نیازمندی ها :
به منظور استفاده از این نوع وب سرویس لازم است که روی هاست شما SOAP فعال باشد و یا کتابخانه NuSOAP را در درون اسکریپت یا برنامه خود include کنید.

داده های ارسالی :
بطور کلی سایت مبدا براي انجام تراکنش باید موارد زیر را به آدرس https://parsipal.ir/webservice/soap/?wsdl از طربق فراخوانی متد PaymentRequest ارسال کند

PaymentRequest(
	'MerchantID' 	=> $MerchantID,
	'Amount' 	=> $Amount,
	'Description' 	=> $Description,
	'CallbackURL' 	=> $CallbackURL,
	'InvoiceNumber' => $InvoiceNumber,
	'CardNumber' 	=> $CardNumber
);

پارمترهاي ورودي متد PaymentRequest به شرح زير مي باشند :

پارامترهای ارسالی مثال توضیح
MerchantID xxxxxxxxxxxxxxxx مرچنت آیدی در بخش " درگاهای من " در پنل کاربری شما در قابل مشاهده میباشد
Amount 100 مبلغی که در تراکنش ارسال و قابل پرداخت میباشد, واحد مبلغ ارسالی تومان و حداقل مبلغ قابل پرداخت 100 تومان میباشد
Description تراکنش شماره 15 متني كه توسط پذيرنده تعيين ميشود كه نشان دهنده خلاصه محصول يا سرويسي است كه پذيرنده قصد فروش آن را دارد
CallbackURL http://example.com/verify.php آدرس بازگشتی که بعد از انجام عملیات تراکنش، پارسی پال اطلاعات را به آنجا ارسال خواهد کرد
InvoiceNumber 15 شماره تراکنش, این شماره پس از پرداخت برای سایت فروشنده ارسال خواهد شد
CardNumber 6037991100000000 شماره کارت پرداخت کننده ( این مورد میتواند خالی باشد )
مقاديريكه توسط متد PaymentRequest برگشت داده ميشود به شرح زير ميباشد :

پارامترهای برگشتی مثال توضیح
Status 100 وضعيت درخواست كه در صورت موفقيت آميز بودن برابر 100 در غير اين صورت عددي منفي ميباشد
Authority 1000010 شناسه مرجع درخواست، درصورت موفق بودن داراي یک عدد صحیح می باشد

در صورت صحت داده ها پارسی پال یک داده از نوع صحیح و بزرگتر از 0 ( که Authority نام دارد ) و یک داده با نام Status برابر 100 بر می گرداند و سایت پذیرنده پس از دریافت این داده ها، مشتري را به سایت پارسی پال هدایت می نماید, توجه داشته باشید که در داده های برگشتی در صورتی که مقدار Status برابر با 100 نباشد, برابر با یک عدد منفی خواهد بود که شرح خطاهای هر عدد منفی را در تب کدهای برگشتی / خطاها / توضیحات مشاهده کنید.


بطور مثال در صورتی که مقدار Authority بازگشتی برابر با 1000010 باشد بمنظور اتصال به درگاه بانکی و انجام عملیات پرداخت کاربر باید به آدرس زیر هدایت شود :

https://parsipal.ir/startPay/1000010


نمونه کد PHP ایجاد شناسه ی پرداخت ( Authority ) و ارجاع کاربر به درگاه پرداخت :

<?php
$MerchantID 	= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$Amount 	= 1000;
$Description 	= 'توضیحات تراکنش تستی';
$CallbackURL 	= 'http://example.com/verify.php';
$InvoiceNumber 	= 15;
$CardNumber 	= '';

$client = new SoapClient('https://parsipal.ir/webservice/soap/?wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentRequest([
	'MerchantID'     => $MerchantID,
	'Amount'         => $Amount,
	'Description'    => $Description,
	'CallbackURL'    => $CallbackURL,
	'InvoiceNumber'  => $InvoiceNumber,
	'CardNumber'     => $CardNumber,
]);

//Redirect to URL You can do it also by creating a form
if (isset($result->Status) && $result->Status == 100)
{
	header('Location: https://parsipal.ir/startPay/'. $result->Authority);
} else {
	echo (isset($result->Status) && $result->Status != "") ? $result->Status : "-13";
}
?>
<?php
require_once 'lib/nusoap.php';

$MerchantID 	= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$Amount 		= 1000;
$Description 	= 'توضیحات تراکنش تستی';
$CallbackURL 	= 'http://example.com/verify.php';
$InvoiceNumber 	= 15;
$CardNumber 	= '';

$client = new nusoap_client('https://parsipal.ir/webservice/soap/?wsdl', 'wsdl');
$client->soap_defencoding = 'UTF-8';

$result = $client->call('PaymentRequest', [
	[
		'MerchantID'     => $MerchantID,
		'Amount'         => $Amount,
		'Description'    => $Description,
		'CallbackURL'    => $CallbackURL,
		'InvoiceNumber'  => $InvoiceNumber,
		'CardNumber'     => $CardNumber,
	],
]);

//Redirect to URL You can do it also by creating a form
if (isset($result['Status']) && $result['Status'] == 100)
{
	header('Location: https://parsipal.ir/startPay/'. $result['Authority']);
} else {
	echo (isset($result['Status']) && $result['Status'] != "") ? $result['Status'] : '-13';
}
?>
بعد از پايان عمليات درسمت پارسی پال پارسی پال وظيفه دارد كاربر را به سايت پذيرنده كه از طريق CallbackURL مشخص شده است بازگرداند.

در صفحه CallbackURL پذيرنده وظيفه دارد درخواست معادل با Authority كه از طـرف پارسی پال و بـه صـورت QueryString بـر روي CallbackURL ارسال شده يافته و وضعيت تراكنش ( Status ) كه از همين طريق ارسال شده است را با متـد PaymentVerification چـك نمايد در صورت موفق بودن، پرداخت را ثبت و شماره تراكنش را به كاربر خريدار نمايش دهد ؛ در غير اينصورت پذيرنده موظف اسـت كـه بـا توجه به كد خطايي كه توسط متد PaymentVerification دريافت ميكند كاربر را از خطاي رخ داده مطلع سازد.

PaymentVerification(
	'MerchantID' 	=> $MerchantID,
	'Authority' 	=> $Authority,
	'Amount' 	=> $Amount
);


نکته توجه داشته باشيد كه به جز Status كه در متد PaymentVerification قرار دارد يك Status نيز به صورت QueryString به سايت پذيرنده ارسال ميگردد كه دو مقدار ثابت دارد “OK “و“NOK “؛ در صورتي كه اين مقدار برابر “NOK “بود به اين معنا بوده كه تراكنش نا موفق بوده و يا توسط كاربر لغو شده است؛ پس در صورتي متد PaymentVerification استفاده شود كه با QueryString مقدار Status برابر با “OK “باشد.

مقاديريكه توسط متد PaymentVerification برگشت داده ميشود به شرح زير ميباشد :

پارامترهای برگشتی مثال توضیح
Status 100 وضعيت درخواست كه در صورت موفقيت آميز بودن برابر 100 در غير اين صورت عددي منفي ميباشد
RefID 1000010 در صورتي كه پرداخت موفق باشد؛ شماره تراكنش پرداخت انجام شده را بر ميگرداند.
Amount 1000 مبلغ پرداخت شده ( مبلغ به تومان می باشد )
MaskCardNumber 123456****894564 شماره کارت Mask شده خریدار ( شماره کارتی که پرداخت وجه توسط آن انجام شده است )

در صورتی که مقدار بازگشتی Status برابر با 100 باشد تراکنش بدرستی انجام شده است در غیر اینصورت مقدار بازگشتی برابر با یک عدد منفی خواهد بود که شرح خطاهای مرتبط با هر عدد منفی بازگشتی را میتوانید در تب کدهای برگشتی / خطاها / توضیحات مشاهده کنید

نمونه کد PHP تصدیق اصالت پس از پرداخت ( عملیات Verify کردن تراکنش ) :

<?php
$MerchantID 	= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$Amount 	= 1000;
$Authority 	= (isset($_GET['Authority']) && $_GET['Authority'] != "") ? $_GET['Authority'] : "";

if (isset($_GET['Status']) && $_GET['Status'] == 'OK')
{
	$client = new SoapClient('https://parsipal.ir/webservice/soap/?wsdl', ['encoding' => 'UTF-8']);

	$result = $client->PaymentVerification([
		'MerchantID'     => $MerchantID,
		'Authority'      => $Authority,
		'Amount'         => $Amount,
	]);

	if (isset($result->Status) && $result->Status == 100)
	{
		echo 'Transation success. Amount : '. $result->Amount .' Toman AND RefID : '. $result->RefID;
	} else {
		echo (isset($result->Status) && $result->Status != "") ? $result->Status : "-13";
	}
} else {
	echo 'Transaction canceled by user';
}
?>
<?php
require_once 'lib/nusoap.php';

$MerchantID 	= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$Amount 	= 1000;
$Authority 	= (isset($_GET['Authority']) && $_GET['Authority'] != "") ? $_GET['Authority'] : "";

if (isset($_GET['Status']) && $_GET['Status'] == 'OK')
{
	$client = new nusoap_client('https://parsipal.ir/webservice/soap/?wsdl', 'wsdl');
	$client->soap_defencoding = 'UTF-8';

	$result = $client->call('PaymentVerification', [
		[
			'MerchantID'     => $MerchantID,
			'Authority'      => $Authority,
			'Amount'         => $Amount,
		],
	]);

	if (isset($result['Status']) && $result['Status'] == 100)
	{
		echo 'Transation success. Amount : '. $result['Amount'] .' Toman AND RefID : '. $result['RefID'];
	} else {
		echo (isset($result['Status']) && $result['Status'] != "") ? $result['Status'] : '-13';
	}
} else {
	echo 'Transaction canceled by user';
}
?>
مکانیزم کلی درگاه پرداخت پارسی پال بر دو اصل سادگی و امنیت پایه ریزي شده است. بطوریکه یک برنامه نویس با خواندن نکات ، درك مفاهیم و دیدن sample کدهاي موجود در این بخش به راحتی و در کمتر از 10 دقیقه می تواند سایت شما را به سیستم پرداخت پارسی پال متصل نماید

سادگی :
درگاه پرداخت پارسی پال بر اساس مکانیزم POST کار می کند و بر خلاف دیگر درگاه ها که نیاز به فعال سازي SOAP در سمت سرور داشته و کدنویسی کمی پیچیده تري نیازمندند، بسیار ساده صورت می پذیرد. البته لازم به ذکر است که ما نیاز کلیه کاربران را در نظر گرفته ایم و در کنار این وب سرویس امکان استفاده و اتصال به وب سرویس بر پایه SOAP / NuSOAP نیز در نظر گرفته شده و در دسترس می باشد.

امنیت :
در عین سادگی پارسی پال از مکانیزم هاي امنیتی استفاده می کند تا تراکنش ها در امنیت کامل انجام شوند.

نیازمندی ها :
نیازمندي سایت شما براي اتصال به سیستم پرداخت پارسی پال فقط فعال بودن تابع CURL بوده که در اکثر سرور ها این تابع فعال می باشد. براي مطمئن شدن از فعال بودن این تابع با مدیر سرور خود تماس حاصل فرمایید.

داده های ارسالی :
بطور کلی سایت مبدا براي انجام تراکنش باید موارد زیر را به آدرس https://parsipal.ir/webservice/paymentRequest.php و به شیوه POST ارسال نماید

مواردی که باید بصورت POST بمنظور ایجاد تراکنش به وب سرویس پارسی پال ارسال شود :

پارامترهای ارسالی مثال توضیح
MerchantID xxxxxxxxxxxxxxxx مرچنت آیدی در بخش " درگاهای من " در پنل کاربری شما در قابل مشاهده میباشد
Amount 100 مبلغی که در تراکنش ارسال و قابل پرداخت میباشد, واحد مبلغ ارسالی تومان و حداقل مبلغ قابل پرداخت 100 تومان میباشد
Description تراکنش شماره 15 متني كه توسط پذيرنده تعيين ميشود كه نشان دهنده خلاصه محصول يا سرويسي است كه پذيرنده قصد فروش آن را دارد
CallbackURL http://example.com/verify.php آدرس بازگشتی که بعد از انجام عملیات تراکنش، پارسی پال اطلاعات را به آنجا ارسال خواهد کرد
InvoiceNumber 15 شماره تراکنش, این شماره پس از پرداخت برای سایت فروشنده ارسال خواهد شد
CardNumber 6037991100000000 شماره کارت پرداخت کننده ( این مورد میتواند خالی باشد )
لیست داده هاي برگشتی پارسی پال زمان ارسال داده :

پارامترهای برگشتی مثال توضیح
Status 100 وضعيت درخواست كه در صورت موفقيت آميز بودن برابر 100 در غير اين صورت عددي منفي ميباشد
Authority 1000010 شناسه مرجع درخواست، درصورت موفق بودن داراي یک عدد صحیح می باشد

در صورت صحت داده ها پارسی پال یک داده از نوع صحیح و بزرگتر از 0 ( که Authority نام دارد ) و یک داده با نام Status برابر 100 بر می گرداند و سایت پذیرنده پس از دریافت این داده ها، مشتري را به سایت پارسی پال هدایت می نماید, توجه داشته باشید که در داده های برگشتی در صورتی که مقدار Status برابر با 100 نباشد, برابر با یک عدد منفی خواهد بود که شرح خطاهای هر عدد منفی را در تب کدهای برگشتی / خطاها / توضیحات مشاهده کنید

توجه داشته باشید مقدار بازگشتی Authority و Status بصورت JSON میباشد


بطور مثال در صورتی که مقدار Authority بازگشتی برابر با 1000010 باشد بمنظور اتصال به درگاه بانکی و انجام عملیات پرداخت کاربر باید به آدرس زیر هدایت شود :

https://parsipal.ir/startPay/1000010


نمونه کد PHP ایجاد شناسه ی پرداخت ( Authority ) و ارجاع کاربر به درگاه پرداخت :

<?php
$MerchantID 			= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$Amount 			= 500;
$InvoiceNumber 			= 10;
$Description 			= "تراکنش شماره {$InvoiceNumber}";
$CallbackURL 			= "http://example.com/verify.php";
$CardNumber 			= "";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://parsipal.ir/webservice/paymentRequest.php');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type' => 'application/json'));
curl_setopt($curl, CURLOPT_POSTFIELDS, "MerchantID={$MerchantID}&Amount={$Amount}&Description={$Description}&InvoiceNumber={$InvoiceNumber}&CardNumber={$CardNumber}&CallbackURL=". urlencode($CallbackURL));
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_exec = curl_exec($curl);
curl_close($curl);

$result = json_decode($curl_exec);

if (isset($result->Status) && $result->Status == 100)
{
	header("Location: https://parsipal.ir/startPay/{$result->Authority}");
} else {
	echo (isset($result->Status) && $result->Status != "") ? $result->Status : "-13";
}
?>

داده هاي دریافتی :
بعد از انجام پرداخت، پارسی پال مشتري را به آدرسی که در CallbackURL ارسال شده است، همراه با دو متغیر از نوع POST هدایت میکند.
سایت پذیرنده، براي اطمینان یک بار دیگر و بر اساس این دو متغیر از پارسی پال پرس و جو کرده، و از صحت تراکنش انجام شده اطمینان حاصل می نماید.

لیست داده هاي برگشتی پارسی پال زمان دریافت داده :

پارامترهای برگشتی مثال توضیح
Status 100 وضعيت درخواست كه در صورت موفقيت آميز بودن برابر 100 در غير اين صورت عددي منفي ميباشد
RefID 1000010 در صورتي كه پرداخت موفق باشد؛ شماره تراكنش پرداخت انجام شده را بر ميگرداند.
Amount 1000 مبلغ پرداخت شده ( مبلغ به تومان می باشد )
MaskCardNumber 123456****894564 شماره کارت Mask شده خریدار ( شماره کارتی که پرداخت وجه توسط آن انجام شده است )


چنانچه authority یک عدد صحیح بزرگتر از 0 بود سایت پذیرنده باید براي صحت تراکنش داده هاي Authority ، Amount ، MerchantID را به آدرس زیر به شیوه POST ارسال نماید :

https://parsipal.ir/webservice/paymentVerify.php

در صورتی که مقدار بازگشتی Status برابر با 100 باشد تراکنش بدرستی انجام شده است در غیر اینصورت مقدار بازگشتی برابر با یک عدد منفی خواهد بود که شرح خطاهای مرتبط با هر عدد منفی بازگشتی را میتوانید در تب کدهای برگشتی / خطاها / توضیحات مشاهده کنید.

توجه داشته باشید مقدار بازگشتی Authority و Status و Amount بصورت JSON میباشد


نمونه کد PHP تصدیق اصالت پس از پرداخت ( عملیات Verify کردن تراکنش ) :

<?php
$MerchantID 			= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$Amount 			= 500;

if (isset($_POST['status']) && $_POST['status'] == 1)
{
	$Authority 		= (isset($_POST['authority']) && $_POST['authority'] != "") ? $_POST['authority'] : '';
	$InvoiceNumber 	= (isset($_POST['InvoiceNumber']) && $_POST['InvoiceNumber'] != "") ? $_POST['InvoiceNumber'] : 0;

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, 'https://parsipal.ir/webservice/paymentVerify.php');
	curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type' => 'application/json'));
	curl_setopt($curl, CURLOPT_POSTFIELDS, "MerchantID={$MerchantID}&Amount={$Amount}&Authority={$Authority}");
	curl_setopt($curl, CURLOPT_TIMEOUT, 30);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	$curl_exec = curl_exec($curl);
	curl_close($curl);
	
	$result = json_decode($curl_exec);

	if (isset($result->Status) && $result->Status == 100)
	{
		echo 'Transation success. Amount : '. $result->Amount .' Toman AND RefID : '. $result->RefID;
	} else {
		echo (isset($result->Status) && $result->Status != "") ? $result->Status : "-13";
	}
} else {
	echo 'Transaction Canceled By User';
}
?>

MerchantID آزمایشی ( SandBox ) چیست ؟


MerchantID آزمایشی در واقع یک شناسه جهت اتصال به درگاه پارسی پال می باشد, اما با این تفاوت که در MerchantID آزمایشی ( SandBox ) ویژه برنامه نویسان و توسعه دهنگان عزیز بسیار کاربردی می باشد, تفاوت MerchantID آزمایشی با MerchantID های واقعی در این است که در MerchantID آزمایشی ,شخص برنامه نویس بدون نیاز به عضویت در سایت میتواند اقدام به تست بخش کد نویسی شده مربوط به پرداخت نرم افزار، ماژول و وبسايت خود را در حالات مختلف نماید.

دلیل استفاده از MerchantID آزمایشی ( SandBox ) هنگام کد نویسی :


در صورت استفاده از MerchantID آزمایشی, به منظور انجام و تست تراکنش موفق و ناموفق نیازی به اتصال به درگاه پرداخت بانکی, وارد کردن اطلاعات کارت بانکی, رمز دوم و ... نیست و برنامه نویس به سادگی میتواند با استفاده از MerchantID آزمایشی اقدام به تست حالت های نختلف تراکنش موفق و ناموفق به صورت نامحدود کند.

آموزش استفاده از MerchantID آزمایشی ( SandBox ) :


استفاده از حالت SandBox یا پرداخت آزمایشی ( MerchantID آزمایشی ) بسیار ساده می باشد, به منظور استفاده از این قابلیت تنها کافیست مقدار MerchantID را برابر sandbox قرار دهید

MerchantID آزمایشی ویژه برنامه نویسان و توسعه دهندگان :

sandbox

نکات قابل توجه :


  • استفاده از MerchantID آزمایشی نیازی به عضویت ندارد
  • هیچ محدودیتی در تعداد دفعالت استفاده از MerchantID آزمایشی وجود ندارد
  • پس از اتمام کد نویسی و تست مقدار MerchantID را از sandbox به یک MerchantID واقعی تغییر دهید
  • کلیه پروسه های ایجاد تراکنش, ارسال, انجام و وریفای کردن تراکنش در حالت SandBox عیناً مشابه حالت عادی می باشد

نمونه کد استفاده از MerchantID آزمایشی ( SandBox ) :


<?php
$MerchantID 	= 'sandbox';
$Amount 	= 1000;
$Description 	= 'توضیحات تراکنش تستی';
$CallbackURL 	= 'http://example.com/verify.php';
$InvoiceNumber 	= 15;
$CardNumber 	= '';

$client = new SoapClient('https://parsipal.ir/webservice/soap/?wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentRequest([
	'MerchantID'     => $MerchantID,
	'Amount'         => $Amount,
	'Description'    => $Description,
	'CallbackURL'    => $CallbackURL,
	'InvoiceNumber'  => $InvoiceNumber,
	'CardNumber'     => $CardNumber,
]);

//Redirect to URL You can do it also by creating a form
if (isset($result->Status) && $result->Status == 100)
{
	header('Location: https://parsipal.ir/startPay/'. $result->Authority);
} else {
	echo (isset($result->Status) && $result->Status != "") ? $result->Status : "-13";
}
?>
<?php
$MerchantID 	= 'sandbox';
$Amount 	= 1000;
$Authority 	= (isset($_GET['Authority']) && $_GET['Authority'] != "") ? $_GET['Authority'] : "";

if (isset($_GET['Status']) && $_GET['Status'] == 'OK')
{
	$client = new SoapClient('https://parsipal.ir/webservice/soap/?wsdl', ['encoding' => 'UTF-8']);

	$result = $client->PaymentVerification([
		'MerchantID'     => $MerchantID,
		'Authority'      => $Authority,
		'Amount'         => $Amount,
	]);

	if (isset($result->Status) && $result->Status == 100)
	{
		echo 'Transation success. Amount : '. $result->Amount .' Toman AND RefID : '. $result->RefID;
	} else {
		echo (isset($result->Status) && $result->Status != "") ? $result->Status : "-13";
	}
} else {
	echo 'Transaction canceled by user';
}
?>
مقدار بازگشتی توضیح خطا
-1 پارامترهای ارسال ناقص میباشد
-2 مرچنت کد ارسال شده صحیح نمیباشد
-3 مرچنت کد ( درگاه مورد نظر ) غیر فعال میباشد
-4 مقدار پارامتر Amount باید یک عدد صحیح برابر یا بزرگتر از 100 باشد ( حداقل مبلغ قابل پرداخت 100 تومان میباشد )
-5 مقدار InvoiceNumber باید یک عدد صحیح بزرگتر از 0 باشد
-6 خطای سیستمی در ایجاد Authority, این موضوع را به بخش پشتیبانی پارسی پال اطلاع دهید
-7 خطا در دریافت Authority, این موضوع را به پشتیبانی پارسی پال اطلاع دهید
-8 خطای سیستمی, این موضوع را به پشتیبانی پارسی پال اطلاع دهید
-9 به منظور ایجاد تراکنش, ابتدا لازم است یک حساب بانکی در سامانه ثبت کنید ( حساب مورد نظر باید تایید شده باشد )
-10 سطح اکانت شما معمولی می باشد, به منظور انجام تراکنش لازم است سطح اکانت خود را به تجاری ارتقاء دهید. ( در این خصوص از طریق تیکت با پشتیبانی در تماس باشید )
-11 آدرس بازگشتی با آدرس درگاه پرداخت ثبت شده همخوانی ندارد
-12 خطای سیستمی در وب سرویس
-13 خطا در اتصال به وبسرویس و دریافت اطلاعات
-14 شماره کارت ارسال شده صحیح نیست, مقدار CardNumber باید برابر یک عدد صحیح 16 رقمی باشد ( ارسال این فیلد الزامی نبوده و میتوانید آن را خالی بگذارید )
-111 پارامترهای ارسال ناقص میباشد
-112 مرچنت کد ارسال شده صحیح نمیباشد
-113 مبلغ وارد شده با مقدار ثبت و پرداخت شده مغایرت دارد
-114 تراکنش موفق بوده است, اما این تراکنش قبلاً Verify شده است, هر تراکنش را فقط یک بار میتوان Verify کرد
-115 خطا در Verify کردن تراکنش
-116 خطای سیستمی, این موضوع را به بخش پشتیبانی پارسی پال اطلاع دهید
-117 عملیات پرداخت ناموفق بوده است