Files
customerTicket/docs/PAYMENT_LINKS.md
T
2026-10-06 10:03:22 +03:30

4.7 KiB

لینک موقت پرداخت

لینک {payment_link} در پیامک صدور اعلامیه و تأیید نهایی فیش، اکنون یک مجوز مستقل است؛ کاربر با آن وارد حساب نمی‌شود. مسیر ورودی /chaharsu/link/<token>/ پس از بررسی، به آدرس بدون توکن منتقل می‌شود.

محدوده و عمر دسترسی

  • اعتبار پیش‌فرض ۷ روز است. PAYMENT_LINK_TTL_DAYS قابل تنظیم است و در نبود آن، از MAGIC_LINK_TTL_DAYS استفاده می‌شود.
  • لینک اعلامیه فقط همان اعلامیه، فیش‌های آن و فیش‌های مستقلی را که از طریق همان لینک ثبت شده‌اند نمایش می‌دهد؛ دسترسی به سایر اعلامیه‌های مشتری یا حساب کامل او نمی‌دهد.
  • مشاهده اطلاعات بانکی، کپی تک‌فیلد و کامل، ثبت فیش مرتبط و مستقل، مشاهده وضعیت، دریافت تصویر و اصلاح فیش ردشده بدون ورود ممکن است.
  • فیلد «شناسه واریز که با آن پرداخت انجام داده‌اید» هنگام ارسال فیش اختیاری است؛ خالی‌بودن آن مانع ارسال نمی‌شود. هشدار ثبت شناسه در عملیات پرداخت بانکی همچنان نمایش داده می‌شود.
  • انقضا، ابطال و غیرفعال‌شدن مشتری در هر درخواست دوباره بررسی می‌شود. CSRF و اعتبارسنجی تصویر، مبلغ و تاریخ همچنان برقرارند.
  • تأیید و رد فقط برای کاربران دارای مجوز و تعیین‌شده در سیاست تأیید باقی می‌ماند. لینک پرداخت مجوز تأیید نمی‌دهد و لینک تیکت مجوز مالی نمی‌دهد.
  • اگر حساب دیگری باز باشد، خروج تنها پس از تأیید صریح کاربر انجام می‌شود.

پیامک و مدیریت

هنگام آماده‌سازی نخستین ارسال پیامک، لینک ساخته می‌شود تا تأخیر صف از زمان اعتبار کم نکند. تلاش‌های مجدد همان لینک و متن ثبت‌شده را استفاده می‌کنند. برای پیامک‌های آماده‌شده قدیمی که هنوز لینک موقت ندارند، فقط URL قبلی جایگزین می‌شود و متن سفارشی حفظ می‌شود؛ پیامکی که قبلاً به گوشی ارسال شده قابل تغییر نیست.

در جزئیات اعلامیه کارشناس، «ساخت لینک تازه پرداخت» لینک قابل کپی می‌سازد؛ این کار پیامک ارسال نمی‌کند. لینک‌های قبلی تا انقضا یا ابطال معتبر می‌مانند. در ادمین، مدل «لینک‌های موقت پرداخت» امکان بررسی زمان‌ها و ابطال لینک را دارد. ایجاد، بازکردن و ابطال در ممیزی مالی ثبت می‌شوند و توکن در ردیف ممیزی ثبت نمی‌شود.

مدل SMSTemplate تگ‌های مجاز را بر اساس رویداد تعیین و ذخیره می‌کند. رویدادهای مالی از {payment_link} و رویدادهای تیکت مشتری از {magic_link} پشتیبانی می‌کنند. صفحه مدیریت پیامک با تغییر رویداد، فهرست تگ‌های مناسب را نشان می‌دهد. مهاجرت داده فقط تگ‌ها را هماهنگ می‌کند و متن‌های سفارشی را تغییر نمی‌دهد.

شماره حساب، شبا و سایر اطلاعات از snapshot اعلامیه نمایش داده می‌شوند. شناسه واریز و تذکر آن قرمز است. امضای مسیر بدون ورود از SiteBranding.developer_credit_text خوانده می‌شود.

تست دائمی

از WSL و در ریشه پروژه اجرا کنید:

.venv/Scripts/python.exe -m pytest tests/test_payment_links.py tests/e2e/test_payment_links_e2e.py -q

تست‌ها از دیتابیس جداگانه، سرور transactional و مرورگر مدیریت‌شده پروژه استفاده می‌کنند و پیامک واقعی ارسال نمی‌کنند. تست‌های مرورگر در عرض‌های ۳۲۰، ۳۹۰ و ۱۴۴۰ پیکسل اجرا می‌شوند. تست‌های سرور شامل لینک پیامک، تکرار ارسال، عدم ورود به حساب، محدوده مشتری، انقضا و ابطال، CSRF، ارسال فیش مرتبط و مستقل، اصلاح و کنترل تصویرند.