PDA

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



karma22
شنبه 20 فروردین 1390, 09:46 صبح
سلام

من با بانک پارسیان قرارداد بستم و تمام اطلاعات لازم برای راه اندازی پرداخت آنلاین را گرفته ام اما مشکل اینجاست که نمی توانم نمونه کدی که برای ASP.net از پارسیان دریافت کرده ام را بر روی سرورم پیاده سازی کنم.

می خواستم بدونم کسی نمونه کدی که بدون مشکل بر روی IIS 7.0 و ASP.net 2.0 میشه را دارد یا نه؟

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

در مقابل نمونه کد قابل اجرا، حاضر به پرداخت هزینه نیز هستم.

متشکرم

Ahmadgolagha
شنبه 20 فروردین 1390, 09:53 صبح
من روی پرداخت آنلاین بانک سامان تسلط دارم. شنیدم بانک پارسیان هم شبیه سامان است.
تمام اطلاعاتی را که گرفته اید اینجا قرار بدید انشاالله بنده و سایر دوستان کمکتون می کنیم. (فقط اگر اطلاعات را گذاشتید مواظب باشید یوزر و پسورود را نذارید )

karma22
شنبه 20 فروردین 1390, 11:14 صبح
متشکرم از جوابتون

من نمونه ها و اطلاعات فنی که توسط بانک داده شده را می گذارم.

واقعا ممنونم

naeeme
شنبه 20 فروردین 1390, 11:55 صبح
مشکل شما در کجاست؟ پیاد سازی بانک پارسیان یکی از ساده ترین پیاده سازی های در پرداخت الکترونیکی ایران هست.
اگر در مفاهیم مشکلی دارید، اونها رو بیان کنید تا کمک کنیم. هر کدی که برای شما بگذاریم شبیه همین تکه کد نمونه میشه.

karma22
شنبه 20 فروردین 1390, 12:27 عصر
من قدم به قدم مراحل نصب نمونه را بر روی سرور اختصاصی که دارم میگم. ویندوز سرور 2008 و IIS 7 بر روی سیستم است.

من نمونه ASP.net را از فایل ضمیمه شده بر روی سرور قرار می دهم و اولین مشکل در کمپایل است که پیغام زیر را می دهد:

Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.
که البته با تبدیل پوشه ی نمونه به application رفع می شود.

بعد از آن با پیغام زیر مواجه می شود:

Could not load file or assembly 'Common.dllx' or one of its dependencies. The system cannot find the file specified.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'Common.dllx' or one of its dependencies. The system cannot find the file specified.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'Common.dllx' could not be loaded.

اگر فایل common.dllx را از پوشه ی Bin حذف کنم با پیغام زیر مواجه می شوم:


Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load type 'PECeShopSample.Global'.

Source Error:


Line 1: <%@ Application Codebehind="Global.asax.cs" Inherits="PECeShopSample.Global" %>

که در اینجا نیز راه حل های مختلفی را آزمایش کرده ام اما قادر به حل مشکل نبوده ام.

با تشکر.

naeeme
شنبه 20 فروردین 1390, 15:25 عصر
این کد متاسفانه خیلی قدیمی هست و اگر تجربه کار با ورژنهای قبلی دات نت رو نداشته باشید شاید به مشکل بربخورید.
در کل برای پرداخت از بانک پارسیان شما نیاز به اضافه کردن وب سرویس بانک پارسیان از آدرس https://www.pec24.com/pecpaymentgateway/EShopService.asmx دارید و البته برای پرداخت موفق باید IP سرور شما در بانک پارسیان رجیستر شده باشه که فکر کنم چون شما عقد قرارداد کردید، در اون زمان باید این IP رو اعلام و هم اکنون هم در سرورهاس پارسیان رجیستر شده باشند.
در پارسیان یک مقدار به نام authority وجود داره که یکتا ست و به هر تراکنش رجیستر شده در دروازه پرداخت اختصاص داده میشه. یه مقدار هم به نام orderId وجود داره که در واقع شماره یکتا هر سفارش در سیستم شماست. همینطور یه مقدار به نام Merchant Id یا همون LoginId وجود داره که یکتاست و فروشگاه رو مشخص میکنه.
در صفحه Default.aspx در خط 78 شما کد
private PEC.EShopService service;رو مشاهده میکنید که در واقع یک instance از وب سرویس پارسیان هست. شما در ابتدا باید یک تراکنش رو در وب سرویس پارسیان با دستور service.PinPaymentRequest رجیستر کنید. لازمه این دستور موارد زیر هست:
LoginId
callBackURL که مشخص میکنه پس از هدایت کاربر به دروازه پرداخت پارسیان و انجام پرداخت، کاربر ب کدوم صفحه شما برگشت داده بشه
amount مبلغی که کاربر باید پرداخت نماید
orderId شماره خرید که باید یکتا باشد
authority که یک مقدار عددی ست و در سمت وب سرویس تولید شده و برگردانده میشود
status که اگر 0 باشد شما قادر به ادامه عملیات هستید. در غیر این صورت بر اساس فایل ضمیمه PgwStatus.cs مفهوم آن را تفسیر میکنید.
اگر رجیستر موفق بود شما باید مشتری رو به


https://www.pec24.com/pecpaymentgateway?au=[authority]
صفحه بفرستید

if (status == 0)
Response.Redirect(pgwPage+"?au="+authority.ToString(), true);

تمام این عملیات در متد btnStart_Click نوشته شده است.

بعد از این که مشتری به صفحه بازگشت شما که آدرس آن را در callBackURL به پارسیان اعلام کرده اید، بازگشت، پارسیان در Query string دو مقدار au و rs را برمیگرداند که اولی همان authority و تراکنش را مشخص میکند و دومی نتیجه تراکنش را اعلام میکند با توجه به نتیجه تراکنش که اگر 0 بود، پرداخت موفق و اگر غیر صفر بود پرداخت ناموفق است نتیجه را بررسی می نمایید.
اگر تراکنش موفق بود؛ شما باید متد Enquery را فراخوانی نمایدد تا پارسیان مبلغ فوق را بطور قطعی از مشتری کسر و به حساب شما ارسال نماید. اگر در عرض 10 دقیقه این متد را فراخوانی نکنید، مبلغ به حساب مشتری برگشت داده شده و تراکنش ناموفق خواهد بود

امیدوارم این توضیحات، کد رو براتون مفهوم کرده باشه و دیگه نیاز به اجرای کدپیدا نکنید

karma22
یک شنبه 21 فروردین 1390, 08:04 صبح
بسیار متشکرم از شما.

تنها مشکل من در قسمتی است که باید وب سرویس را اضافه کرد. چگونه می توانم وب سرویس را اضافه کنم به صورتی که بتوان از آن در کد استفاده کرد؟

raminsoft
یک شنبه 21 فروردین 1390, 08:55 صبح
داخل پنجره Solution Explorer روی پروژه کلیک راست بگیرید و Add Service Reference را انتخاب کنید ، سپس لینک آدرس سرویس را بدهید و یک نام انتخاب کنید و تمام !

naeeme
یک شنبه 21 فروردین 1390, 08:55 صبح
برای اضافه کردن یک Web reference باید روی پروژه راست کلیک کرده و add web reference رو انتخاب کنید. در صفحه جدید باز شده، URL وب سرویس مورد نظر رو زده و منتظر لود شدنش میشید. سپس یک نام مناسب در web reference name انتخاب کرده و اون رو به پروژه اضافه میکنید.

isatice22
یک شنبه 19 تیر 1390, 00:55 صبح
اولین کاری که باید بکنی اینه که web reference بانک رو به پروژه ات add کنی، رو پروژه راست کلیک کن بعد گزینه add web reference رو انتخاب کن و آدرس web service رو وارد کن تا به پروژه ات اضافه شه.
بعد دیگه کارهای کدنویسی مربوط به سایت
در انتها برای پرداخت باید این متد رو فراخوانی کن :
service.PinPaymentRequest("PIN", amount, orderId, callbackPage, ref authority, ref status);
به جای پین کدی رو که از بانک دریافت کردی بنویس
amount هم که مقدار خریده
orderId رو باید خودت تایین کنی بهتره از کلاس random برای ایجاد عدد تصادفی استفاده کن
callbackpage صفحه ایه که وقتی پرداخت انجام شد بانک مشتری رو به اون هدایت می کنه
authority رو برابر صفر قرار بده البته چون از نوع ref هست باید حتما قبل از فراخوانی تعریفش هم کن
status رو هم صفر قرار بده و مثل authority قبل از فراخونی حتما تعریفش کن.
حالا اگه متد رو فراخونی کنی وب سرویس دو مقدار authority و status رو مقداردهی می کنه و شما در سایتتون این مقدار status رو چک می کنید که درصورت صحیح بودن پارامترها باید 0 باشه اگه صفر بود حالا مقدار authority رو به سایت دروازه پرداخت بفرست مث دستور زیر :
https://www.pec24.com/pecpaymentgateway/default.aspx?au=791684761124
بعد مشتری به سایت redirect میشه و بانک از رو کدی که براش فرستادین جزییات فروش رو بدست میاره
در انتها بعد از پرداخت مبلغ ، مقدار au و rs که جزییات تراکنش رو اعلام می کنن به سایتتون برگشت داده می شن و شما باید چک کنید اگه صحیح بود باید یه بار دیگه پارامتر ها رو به بانک ارسال و وقتی همه چیز رو به راه بود دیگه شمایید مبلغی که به حسابتون واریز شده :چشمک:
همه اینا که گفتم سرهم شاید نیم ساعت کار ببره خیلی سادس حتما از مثالی که خود بانک براتون می فرسته استفاده کنید.
یه نکته مهم دیگه : حتما باید سایتتون رو آپ لود کنید و از سرور اجرا کنید چون بانک توسط pin که می فرستین
ip سرور سایت شما رو می شناسه و ip دیگه رو قبول نمی کنه

sahand02
دوشنبه 20 تیر 1390, 09:57 صبح
سلام
من اسكريپت پرداخت آنلاين كليه بانكها رو دارم اگه كسي خواست خبر بده
09383501998

vandusoft
چهارشنبه 17 خرداد 1391, 23:46 عصر
ببخشید من یه سوال داشتم. میشه با استفاده از درگاه بانک و فراخوانی یک تابع پولی رو از حسابی به حساب دیگه منتقل کرد؟ منظورم redirect شدن به صفحه بانک و این چیزا نیست.
ممنونم.

مهدی کرامتی
پنج شنبه 18 خرداد 1391, 00:02 صبح
هیچ بانک در ایرا چنین سرویسی ارائه نمیده.

vandusoft
پنج شنبه 18 خرداد 1391, 09:09 صبح
هیچ بانک در ایرا چنین سرویسی ارائه نمیده.

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

من دارم یه سایت راه اندازی می کنم که توش نیاز دارم از کاربر پول دریافت کنم (تا اینجای کار مشکلی نیست) و یا به حسابش پول واریز کنم (مشکل همین جاست)
کد هایی که دوستان گذاشتن رو بررسی کردم. همه شون توی مورد اول بحث کردن. ولی من نیاز دارم تا از شماره حساب خودم پولی رو به شماره کارت دیگری (که کاربران سایت باشن) واریز کنم. آیا این امکان وجود داره؟ یا میشه با یه حقه ای (بدون کمترین کار دستی) شبیه سازیش کرد؟
ممنون از تجربه مفید و پاسخگویی تون...

بعدا نوشت : توی این صفحه هم (البته برای بانک پاسارگاد) قید شده این مسئله:

https://epayment.bankpasargad.com/PayOrder.aspx

آیا استفاده از صفحاتی مثل صفحه فوق و وارد کردن دستی فیلدها، بهترین راهه؟

vandusoft
جمعه 19 خرداد 1391, 20:41 عصر
خب جواب خودم رو گرفتم.
اصلا امکان نداره.
ممنونم.

احمد سامعی
یک شنبه 12 شهریور 1391, 18:04 عصر
سلام
من نتونستم برنامه رو اجرا کنم خطای کانکشن می ده نمی تونه به بانک وصل بشه میگه یوزر sa اجازه دسترسی نداره

mohandese narmafzar
سه شنبه 28 شهریور 1391, 02:10 صبح
من نمیتونم این وب رفرنس رو اضافه کنم نمیدونم چرا؟همه این ادرس ها رو هم امتحان کردم اما اضافه نمیشه یعنی یه صفحه میاد که پیجی پیدا نشده!میتونید کمک کنید که من باید چه کنم؟

morimiro
چهارشنبه 22 آذر 1391, 21:15 عصر
سلام
من متدهای پرداخت آنلاین پارسیان و گرفتم و به بانک پارسیان هم وصل می شم،بعد از اینکه پرداخت و میزنم و متد service.PinPaymentEnquiry(pin, authority, ref status); و call می کنم خطای Object reference not set to an instance of an object رو میده
لطفا جواب بدین من توی داکیومنت های خود بانک هم چیزی که بتونه جوابمو بده پیدا نکردم

M.KH-SH
چهارشنبه 22 آذر 1391, 23:03 عصر
آیا بانکی هست که درگاه به شخص بده بدون نیاز به ثبت شرکت یا خیر؟
اگر هست میشه راهنمایی کنین که به چه صورت عمل کنم تا درگاهی دریافت کنم.

foumanvilla
جمعه 04 اسفند 1391, 12:28 عصر
سلام. ببخشید من بعد از مدت ها به سایت اومدم و سوال می پرسم. جایی بهتر از اینجا برای گرفتن جوابم پیدا نکردم.

من دارم یه سایت راه اندازی می کنم که توش نیاز دارم از کاربر پول دریافت کنم (تا اینجای کار مشکلی نیست) و یا به حسابش پول واریز کنم (مشکل همین جاست)
کد هایی که دوستان گذاشتن رو بررسی کردم. همه شون توی مورد اول بحث کردن. ولی من نیاز دارم تا از شماره حساب خودم پولی رو به شماره کارت دیگری (که کاربران سایت باشن) واریز کنم. آیا این امکان وجود داره؟ یا میشه با یه حقه ای (بدون کمترین کار دستی) شبیه سازیش کرد؟
ممنون از تجربه مفید و پاسخگویی تون...

بعدا نوشت : توی این صفحه هم (البته برای بانک پاسارگاد) قید شده این مسئله:

https://epayment.bankpasargad.com/PayOrder.aspx

آیا استفاده از صفحاتی مثل صفحه فوق و وارد کردن دستی فیلدها، بهترین راهه؟
داداش برایی این کار بهترین گزینه بانکداری اینترنتی هستش.راحت میتونی به حساب هرشخصی واریز داشته باشی.کافیه از تو بانکت ثبت نام کنی.

foumanvilla
جمعه 04 اسفند 1391, 12:31 عصر
دوستان من برای پرداخت پارسیان (php) مشکل دارم.این اسکریپت های رایگان رو گرفتم و نصب کردم.به نظرتون قابل اطمیینان هستند؟
یه سوال دیگه تو فایل config تو قسمت اول که localhost نوشته رو باید تغییر بدیم؟یا بزاریم همونطوری بمونه
بقیه رو میدونم که باید تغییر بدیم
بعدش تو این اسکریپ ها چجوری باید مدیریت کنیم پرداخت ها رو؟