راکت

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

1 پاسخ

سلام .
من میخوام وقتی کاربر یک محصولی را که ثبت سفارش میکنه از موجودی کم بشه و کاربر ب صفحه پرداخت منتقل بشه و اگر پرداخت با موفقیت انجام نشد یا اصلا کاربر مرورگر را در صفحه پرداخت بست سیستم به صورت اتوماتیک تمامی اطلاعات رو برگردونه به حالت قبل . تا جایی که من فهمیدم باید با transaction در لاراول انجام بدم اما مشکلی که وجود داره اینکه برای پرداخت کاربر باید ریدایرکت بشه به صفحه درگاه و وقتی برمیگرده دیگه من نمیتونم transaction رو commit یا rollback کنم . ممنون میشم راهنمایی کنید.

ثبت پرسش جدید

پاسخ‌ها

1
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

@mahdi.afiyati.dalir

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

با این توصیفات یک راهکار به نظرم استفاده از scheduler هست که مثلا بیاید یک job تعریف بکنید که هر n دقیقه یکبار بره سراغ سفارش هاش ثبت شده ای که حداقل n دقیقه از زمان ثبتشون گذشته و هنوز وضعیتشون به «پرداخت موفق» آپدیت نشده و تمامش رو حذف کنه و موجودی رو به همون تعداد مجددا شارژ کنه. در پایان هم لازم هست در تنظیمات سرورتون برای این امر یک CronJob تنظیم کنید.

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام