PDA

View Full Version : سوال: مشکل در درگاه پرداخت بانک پاسارگاد



bcloob
پنج شنبه 31 مرداد 1392, 17:16 عصر
با سلام






من دارم یک بخش پرداخت آنلاین توسط بانک پاسارگاد برای سیستم خودم طراحی می کنم، اما متاسفانه زمان اجرا میگه که مسیر فایل PrivateKey.pem اشتباه است و ارور میده.
من سورس صفحه رو اینجا میزارم اگر کسی میتونه من رو راهنمایی کنه ممنون میشم














<?php
$content = '<invoice time_stamp="2013/08/21 016:33:45"
invoice_date="1392/05/30"
invoice_number="12135"
terminal_code="کد 1"
merchant_code="کد 2"
redirect_address="#"
referer_address="#"
delivery_address="تهران"
total_amount="1"
buyer_name="محمود کاظمی"
buyer_tel="09111111111"
delivery_days="5">

<item number="2">
<content>تست</content>
<count>1</count>
<fee>1</fee>
<amount>1</amount>
<description>برای تست</description>
</item>
</invoice>'; // your invoice as xml that described in readme file

$pvk_res = openssl_get_privatekey(file_get_contents("PrivateKey.pem")); // notice: there must be pkcs#8 representation of your privateKey in .PEM file format.
$sig = '';
if (!openssl_sign($content, $sig, $pvk_res,OPENSSL_ALGO_SHA1)) {
echo 'مسير كليد خصوصي صحيح نمي باشد';
} else {
$signature = base64_encode($sig); // your signature to POST to paypaad.bankpasargad.com/PaymentController as sign parameter

}
?>
<form action="https://paypaad.bankpasargad.com/PaymentController" method="post">
<input type="hidden" name="sign" value="<?php echo $signature ?>" />
<input type="hidden" name="content" value='<?php echo $content ?>' />
<input type="submit" value="ارسال" name="submit" />
</form>


2 تا کد درگاه رو برای اینکه می خواستم اینجا بزارم برداشتم... اصلا قبل از اینکه من فرم و submit کنم این ارور رو میده

Warning: openssl_sign() [function.openssl-sign]: supplied key param cannot be coerced into a private key]

kartuf
جمعه 01 شهریور 1392, 03:00 صبح
درگاه مربوط به پرداخت امن هست شما PrivateKey.pem در چه مسیری قرار دادید مسر مستقم بدید احتمالا در ادرس دهی نسبی اشتباه میکنید و یا PrivateKey.pem رو در مسیر مورد نظر قرار ندادید

bcloob
جمعه 01 شهریور 1392, 10:18 صبح
مسیر مستقیم هم دادم ولی بازم ارور میده :ناراحت:

bcloob
جمعه 01 شهریور 1392, 12:52 عصر
واقعا جالبه ،
انجمنی مثل برنامه نویس جواب سوال ساده ای مثل اینو نمی تونه بده، مطمئنا خیلی از کاربرای حرفه ای انجمن این پست رو خوندن و از پاسخ دادن بهش صرف نظر کردن آخه مسئله بر میگرده به تجاری بودن بحث درگاه های پرداخت آنلاین !
خوبه که نخواستم کل پروژرو برام بنویسید و فقط سوالم این بود که مشکل من در آدرس فایل امنیتی چیه
اگر هدف این انجمن یادگیری و تبادل نظر بین کاربراست حداقل باید کاربر رو راهنمایی کنید
در بحث های دیگهای که من داشتم راهنمایی ها خوب بود و تشکر می کنم از کاربرا ولی تو مواردی مثل این ... نمیدونم والا

a_ahmadi
جمعه 01 شهریور 1392, 13:07 عصر
<?php
$content = '<invoice time_stamp="2013/08/21 16:33:45"
invoice_date="1392/05/30"
invoice_number="12135"
terminal_code="کد 1"
merchant_code="کد 2"
redirect_address="#"
referer_address="#"
delivery_address="تهران"
total_amount="1"
buyer_name="محمود کاظمی"
buyer_tel="09111111111"
delivery_days="5">

<item number="2">
<content>تست</content>
<count>1</count>
<fee>1</fee>
<amount>1</amount>
<description>برای تست</description>
</item>
</invoice>'; // your invoice as xml that described in readme file

$pvk_res = openssl_get_privatekey(file_get_contents("PrivateKey.pem")); // notice: there must be pkcs#8 representation of your privateKey in .PEM file format.
$sig = '';
if (!openssl_sign($content, $sig, $pvk_res,OPENSSL_ALGO_SHA1)) {
echo 'مسير كليد خصوصي صحيح نمي باشد';
} else {
$signature = base64_encode($sig); // your signature to POST to paypaad.bankpasargad.com/PaymentController as sign parameter

}
?>
<form action="https://paypaad.bankpasargad.com/PaymentController" method="post">
<input type="hidden" name="sign" value="<?php echo $signature ?>" />
<input type="hidden" name="content" value='<?php echo $content ?>' />
<input type="submit" value="ارسال" name="submit" />
</form>

اوپن اس اس ال باید در هاست فعال باشه
جواب بانک

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

bcloob
جمعه 01 شهریور 1392, 14:46 عصر
a_ahmadi خیلی ممنون تز راهنماییت
میشه بفرمائید چطوری باید فعالش کنم ؟
از Coanel یا اینکه با سرویس دهندم باید بگم !

AliRezaPro
جمعه 01 شهریور 1392, 16:02 عصر
Activate SSL on Your Web Site (HTTPS)
در
SSL/TLS Manager
هست

a_ahmadi
جمعه 01 شهریور 1392, 16:13 عصر
به سرویس دهنده بگید فعال کنه.
http://i.stack.imgur.com/tWHYl.png

bcloob
شنبه 02 شهریور 1392, 21:45 عصر
ممنونم از آقای AliRezaPro (http://barnamenevis.org/member.php?46852-AliRezaPro)
ببخشید چیزی که گفتید توی سی پنل هست ؟ من رفتم توی بخش SSL/TLS Manager هاستم ولی گزینه ای که شما گفتید نبود !
این گزینه ها بود

109663

از آقای a_ahmadi (http://barnamenevis.org/member.php?20170-a_ahmadi) هم ممنونم ولی سرویس دهنده من گفت همچین قابلیتی برای فعالسازی نداریم بعد پرسید برای چه کاری می خواین !

AliRezaPro
شنبه 02 شهریور 1392, 22:08 عصر
از اینجا ببینید :

http://www.youtube.com/watch?v=BY77tnltL1M&noredirect=1

bcloob
یک شنبه 03 شهریور 1392, 08:20 صبح
با عرض سلام و خسته نباشید
جناب AliRezaPro (http://barnamenevis.org/member.php?46852-AliRezaPro) از راهنماییتون کمال تشکر رو دارم فایل بسیار آموزنده ای بود، ولی باز هم برام سوال
اینجا 3 تا بخش وجود داره از اونجایی که فایل من یک PrivateKey فک کنم مربوط به قسمت اول میشه، من Domin خودم رو انتخاب می کنم و مراحل رو طبق آموزش می رم اما در آخر فقط یک PrivateKey دیگه بهم میده و من نمیدونم عملا openssl فعال شده یا خیر !

babak_ata
شنبه 09 شهریور 1392, 10:29 صبح
با سلام به همه دوستان
من هم با این پنل مشکل دارم
خطایی که به من میده :
خطااطلاعات امنیتی ارسال شده از فروشگاه نادرست است. لطفاً با پشتیبانی فروشگاه تماس بگیرید.


من فایل PrivateKey رو هم دوباره گرفتم از سایت ولی باز مشکل داره
بقیه پارامتر های ارسالی رو که تغییر میدم و مقدار نادرست وارد می کنم خطای دیگه ای میده، فکر میکنم مشکل از اونا نباشه



<?php
if(isset($_POST['submit'])){
$content = '<invoice
time_stamp="'. $_POST['time_stamp'] .'"
invoice_date="'. $_POST['invoice_date'] .'"
invoice_number="'. $_POST['invoice_number'] .'"
terminal_code="'. $_POST['terminal_code'] .'"
merchant_code="'. $_POST['merchant_code'] .'"
redirect_address="http://sitename.ir/payment/p.php?error=0"
referer_address="http://sitename.ir/payment/p.php?error=1"
delivery_address="'. $_POST['delivery_address'] .'"
total_amount="'. $_POST['total_amount'] .'"
buyer_name="'. $_POST['buyer_name'] .'"
buyer_tel="'. $_POST['buyer_tel'] .'"
delivery_days="'. $_POST['delivery_days'] .'">

<item number="1">
<content>'. $_POST['content'] .'</content>
<count>'. $_POST['count'] .'</count>
<fee>'. $_POST['fee'] .'</fee>
<amount>'. $_POST['amount'] .'</amount>
<description>'. $_POST['description'] .'</description>
</item>

</invoice>'; // your invoice as xml that described in readme file

$pvk_res = openssl_get_privatekey(file_get_contents("privateKey.pem")); // notice: there must be pkcs#8 representation of your privateKey in .PEM file format.
$sig = '';
if (!openssl_sign($content, $sig, $pvk_res, OPENSSL_ALGO_SHA1)) {
echo 'error while getting signature!';
} else {
$signature = base64_encode($sig); // your signature to POST to paypaad.bankpasargad.com/PaymentController as sign parameter

}
}


?>
<form method="POST" action="https://paypaad.bankpasargad.com/PaymentController">
<input type="hidden" name="sign" value="<?php echo $signature; ?>">
<input type="hidden" name="content" value='<?php echo $content; ?>'>
<p><input type="submit" value="ارسال به بانک" name="B1"></p>
</form>



اگه میشه راهنماییم کنید.