پلاگین پرداخت از طریق بانک پاسارگاد برای کامپوننت dj classified از Core joomla که فروشگاه afzoneha اون رو منتشر کرد را در پرومژن تخفیف و هدیه خریداری شد که به پیوست همین پست قابل دریافت است.
این پلاگین به درستی عمل میکند و در سیستم پرداخت تک مرحله ای کاملا بدون مشکل؛ فرآیند طی می شود.
اما:
همانطور که بسیاری از دوستان می دانند شرکت پرداخت بانک پاسارگاد اخیرا اقدام به دو مرحله ای کردن فرآیند پرداخت نموده است. بدین ترتیب که در فرآیند پرداخت یک مرحله ای ما اطلاعات و کلید های مربوط به تراکنش را در مرحله ی اول برای https://pep.shaparak.ir/gateway.aspx ارسال می کردیم و پس از انجام تراکنش کلید های پرداختی از طرف بانک از نشانی https://pep.shaparak.ir/CheckTransactionResult.aspx برای سایت بازمیگشت که عملا دوستان با چاپ این اطلاعات می توانستند فاکتوری را برای خریدار صادر و نمایش دهند.
و اما در روش پرداخت دو مرحله ای ؛ عملا یک مرحله ی دیگر به این فرآیند اضافه شده است تا بتواند امنیت ترمینال پرداخت را افزایش دهد. بدین ترتیب که بعد از مرحله ی دوم در روش پرداخت قبلی یک مرحله ی دیگر ؛ یعنی مرحله ی سومی نیز اضاف شده است که سایت پذیرنده باید یک تاییدیه پرداخت (فروش) برای سایت True نماید تا فرآیند پرداخت تکمیل گردد.
بدیهی است طبق سیستم جدید (بر طبق گفته های کارشناس فنی سیستم پرداخت بانک پاسارگاد) ؛ سیستم شاپرک 7 دقیقه جهت تایید پرداخت منتظر سایت (فروشگاه) می ماند و در صورت عدم دریافت تایید پرداخت از طریق https://pep.shaparak.ir/VerifyPayment.aspx ؛ وجوه پرداختی را به حساب خریدار بازمیگرداند.
پس در این سیستم عملا (طبق راهنما) ، فروشگاه باید اطلاعات
کد:
#merchantCode#terminalCode#invoiceNumber#invoiceDate#amount#timeStamp#
را به https://pep.shaparak.ir/VerifyPayment.aspx برگرداند.
بسیاری از پایانه های فروش در حال حاضر روند تک مرحله ای را دارند؛ ولی طبق صحبت های آقای کارشناس پرداخت بانک پاسارگاد در چند مرحله تمامی فروشگاه ها باید به سیستم دو مرحله ای تجهیز شوند.
حال مشکل اینجاست که پلاگین پرداخت حال حاضر که برای سیستم پرداخت پاسارگاد عرضه شده است دارای فرآیند تک مرحله ای می باشد.
هدف اینجاست که این پلاگین تبدیل به پرداخت دو مرحله ای شود.
همراه ضمیمه یک فایل PDF راهنما اضافه نموده ام که در صفحه ی پنج آن راهنمای کامل فرآیند VerifyPayment (مرحله ی سوم) توضیح داده شده است (بند 7)*.
________________________
توضیحات تکمیلی:
اسم این فرآیند دو مرحله ای است ولی در اصل سه مرحله است.
مرحله اول: ارسال اطلاعات به https://pep.shaparak.ir/gateway.aspx
مرحله دوم: دریافت اطلاعات از https://pep.shaparak.ir/CheckTransactionResult.aspx
مرحله سوم: تایید و ارسال اطلاعات به https://pep.shaparak.ir/VerifyPayment.aspx
_____________
پلاگینی که ضمیمه کرده ام برای بانک پاسارگاد است و به روش تک مرحله ای به درستی عمل میکند.
تمامی دوستانی که از بانک پاسارگاد ترمینال پرداخت دارند به راحتی می توانند از این روش استفاده کنند.
ولی ترمینال پرداخت اینجانب به دلیل هویت حقوقی ؛ در طرح جدید پرداخت دو مرحله ای معروف (در اصل سه مرحله ای) قرار گرفته است و نیاز به ارسال تاییدیه به VerifyPayment.aspx است.
کلیدهای تاییدیه برای ارسال به https://pep.shaparak.ir/VerifyPayment.aspx نیز به شرح ذیل هستند:
کد:
#merchantCode#terminalCode#invoiceNumber#invoiceDate#amount#timeStamp#
بانک در نمونه ی کدهای نمونه (Sample Code) به زبان PHP برای VerifyPayment رشته ی ذیل را مورد خطاب قرار داده است:
کد:
<?php
require_once("RSAProcessor.class.php");
$processor = new RSAProcessor("certificate.xml",RSAKeyType::XMLFile);
$merchantCode = 111111; // كد پذيرنده
$terminalCode = 111111; // كد ترمينال
$amount = 1; // مبلغ فاكتور
$invoiceNumber = 16525; //شماره فاكتور
$timeStamp = date("Y/m/d H:i:s");
$invoiceDate = 92/10/30; //تاريخ فاكتور
$data = "#". $merchantCode ."#". $terminalCode ."#". $invoiceNumber ."#". $invoiceDate ."#". $amount ."#". $timeStamp ."#";
$data = sha1($data,true);
$data = $processor->sign($data); // امضاي ديجيتال
$result = base64_encode($data); // base64_encode
$sendingData = "MerchantCode=". $merchantCode ."&TerminalCode=". $terminalCode ."&InvoiceNumber=". $invoiceNumber ."&InvoiceDate=". $invoiceDate ."&amount=". $amount ."&TimeStamp=". $timeStamp ."&sign=".$result;
$verifyresult = post2https($sendingData,'https://pep.shaparak.ir/VerifyPayment.aspx');
$array = makeXMLTree($verifyresult);
var_dump($array);
echo("<br /><br /><h1>");
echo $array["resultObj"]["verifyresult"];
echo("</h1>")
?>
به امید ارائه ی پاسخ های مثبت از طرف دوستان.
با تشکر