PDA

View Full Version : سوال: سوال درمورد بررسی صحت پرداخت در پارس پال



aliblue
سه شنبه 22 مرداد 1392, 17:17 عصر
با سلام. من به درستی کدنویسی عملیات پرداخت را انجام دادم ولی در صفحه ای که می خواهم صحت پرداخت کاربر را تایید کنم، کد Request["refnumber"] به جای این که شماره فاکتوری که خودم هنگام عملیات پرداخت ارسال کرده بودم(برای مثال 19) را برگرداند، کد تراکنش که 11 رقمی می باشد (برای مثال ۱۳۰۰۸۰۵۴۶۲۹) را برمی گرداند. پس من چطوری می توانم بررسی کنم که فاکتور با شماره 19 پرداخت شده است یا خیر؟
با تشکر.

bomb23
سه شنبه 22 مرداد 1392, 19:49 عصر
سلام شما باید ResNumber رو Request کنی نه refNumber! اونی که شما گرفتی شماره رسیده!

aliblue
سه شنبه 22 مرداد 1392, 20:42 عصر
با تشکر.توی راهنما و خود کدهای نمونه ای که که دانلود کردم از refNumber استفاده کرده.نمی دونستم می تونم resNumber رو هم Request کنم.

aliblue
سه شنبه 22 مرداد 1392, 20:48 عصر
یک مشکل دیگه. وقتی با تابع زیر می خوام بررسی کنم که پرداخت انجام شده یا نه:

Parspal.VerifyPaymentResult v = ws.verifyPayment(merchantid, Password, Price, refnum);
من می خواهم که با شماره فاکتور خودم بررسی کنم.یعنی با resNumber ولی این تابع refNumber رو میگیره.چیکار باید کرد؟

bomb23
سه شنبه 22 مرداد 1392, 21:45 عصر
اون تابع VerifyPaymentResult رو که باید با RefNumber بررسی کنید. خب ببیند RefNumber فیلدیه که خود Parspal تولید میکنه شما یه فیلد دیگه تو DB در نظر بگیر مثه ResNumber بعد وقتی Request میکنی ResNumber رو درخواست بده برای واکشی اون رکورد مشتریت بعد همزمان میتونی RefNumber رو Request کنی بعد دوباره RefNumber رو برای ParsPal با اون تابع VerifyPaymentResult برای اطمینان نهایی میفرستی و اوکی میشه دیگه.

aliblue
سه شنبه 22 مرداد 1392, 21:49 عصر
پس چگونه می توان فقط با شماره رزرو(resNumber) به بررسی وضعیت پرداخت اقدام نمود؟
برای مثال کاربر صورت حساب خود را پرداخت می کند ولی قبل از اینکه صفحه از پارس پال به سایت پذیرنده Redirect شود،کاربر مرورگر خود را می بندد.
بعدا که دوباره به صفحه صورت حساب رفت، می بیند که هنوز پرداخت نشده و حتی با کلیک روی گزینه پرداخت دوباره به بانک وصل می شود.
پس در صفحه صورت حساب ها چگونه می توان با فرستادن شماره رزرو، وضعیت پرداخت را تعیین کرد؟چون در این صفحه دسترسی به refNumber نداریم.

bomb23
چهارشنبه 23 مرداد 1392, 01:47 صبح
این کارو دیگه خودتون با یه فیلد بیت میتونید انجام بدید تا قبل از اینکه پرداخت انجام شده باشه اون بیت رو false کنید وقتی پرداخت شد true البته خب وقتی شما refNumber ندارید خب یعنی پرداخت انجام نشده دیگه. همون کاری که بالا گفتم رو انجام بده نتیجه نگرفتی بگو بیشتر کمک کنم.

aliblue
چهارشنبه 23 مرداد 1392, 09:52 صبح
من هم خودم از قبل فیلد active برای مشخص کردن وضعیت پرداخت قرار داده بودم. ولی این فیلد چه زمانی باید true بشه،زمانی که سایت از بانک به پارس پال و سپس به سایت من Redirect بشه و من بررسی کنم و اگه پرداخت انجام شده بود، با توجه به resNumber رکورد مربوطه رو فیلد active رو True کنم. حالا اگر پرداخت انجام بشه ولی قبل از انتقال به سایت من مرورگر بسته بشه، چطوری باید active بشه؟

bomb23
چهارشنبه 23 مرداد 1392, 14:10 عصر
سلام
ببین شما تا وقتی متد VerifyPaymentResult رو نفرستی به پارسپال واسه تایید پرداختت کان لم یکن ملقی هست:لبخند: یعنی شما اگه به صفحت redirect هم بشه پرداخت انجم شده باشه ولی VerifyPaymentResult ارسال نشده باشه یه مهملتی داره و بعد از اون مهلت منقضی میشه و خود پارسپال پول رو برمیگردونه به حساب طرف. پس شما بعد VerifyPaymentResult اگه مقدار خاصیت ResultStatus شی VerifyPaymentResult برابر VerifyResult.success بود یعنی اوکی شده بعدش شما اون Active رو True کن.