کلید یکتایی در پرداخت: چرا یک درخواست هرگز نباید دو بار پول کم کند
شبکه قطع میشود و درخواستها دوباره فرستاده میشوند؛ کلید یکتایی تضمین میکند تلاش دوباره به برداشت دوباره تبدیل نشود.
فرض کنید اپلیکیشن شما درخواست پرداخت را میفرستد، اما پاسخ به خاطر قطعی شبکه نمیرسد. آیا پول کم شده؟ معلوم نیست. اگر دوباره بفرستید، ممکن است مشتری دو بار پرداخت کند؛ اگر نفرستید، ممکن است خرید ناتمام بماند. این همان مسئلهای است که یکتایی عملیات (idempotency) حلش میکند.
راهحل رایج این است که هر درخواست پرداخت یک کلید یکتا داشته باشد که سمت فرستنده ساخته میشود. سرور کلید را همراه نتیجه ذخیره میکند. اگر همان کلید دوباره رسید، عملیات را تکرار نمیکند و همان نتیجه قبلی را برمیگرداند. به این ترتیب تلاش دوباره کاملاً امن میشود.
چند جزئیات مهم:
- کلید را یک بار برای هر «قصد پرداخت» بسازید، نه برای هر تلاش.
- اگر همان کلید با بدنه متفاوت آمد، خطا بدهید؛ این معمولاً نشانه باگ است.
- کلید و نتیجه را آنقدر نگه دارید که همه تلاشهای ممکن را پوشش دهد.
- تلاش مجدد را با فاصله رو به افزایش انجام دهید، نه پشت سر هم.
یکتایی فقط به پرداخت محدود نیست؛ صدور قسط، ثبت سفارش و هر عملیاتی که تکرارش هزینه دارد، به آن نیاز دارد. بهترین زمان تست آن هم پیش از اتصال واقعی است: روی شبیهساز میشود قطعی شبکه و پاسخ گمشده را عمداً ساخت و دید سیستم درست رفتار میکند یا نه.
نسخه صوتی: همین موضوع را در قسمت این هفته پادکست، گفتوگویی حدود دو دقیقهای، بشنوید.
تقویم کاری هفته: ۱۶ آبان تا ۲۲ آبان ۱۴۰۵
این نما بهطور خودکار از موتور تقویم مالی ایران اوپن فاینانس™ ساخته شده است: روزهای کاری، تعطیلات و تاریخ تسویه T+1 برای هر روز هفته.
خلاصه هفته
- روز کاری بانک و شبکه پرداخت (آخر هفته: جمعه): ۶ روز
- روز کاری دستگاههای دولتی و بازار سرمایه (آخر هفته: پنجشنبه و جمعه): ۵ روز
- پایان ماه در این هفته نیست.
روزبهروز
| روز | وضعیت (بانک) | تسویه T+1 | مناسبت |
|---|---|---|---|
| شنبه ۱۶ آبان ۱۴۰۵ | کاری | ۱۷ آبان | — |
| یکشنبه ۱۷ آبان ۱۴۰۵ | کاری | ۱۸ آبان | — |
| دوشنبه ۱۸ آبان ۱۴۰۵ | کاری | ۱۹ آبان | — |
| سهشنبه ۱۹ آبان ۱۴۰۵ | کاری | ۲۰ آبان | — |
| چهارشنبه ۲۰ آبان ۱۴۰۵ | کاری | ۲۱ آبان | — |
| پنجشنبه ۲۱ آبان ۱۴۰۵ | کاری | ۲۴ آبان | — |
| جمعه ۲۲ آبان ۱۴۰۵ | آخر هفته | ۲۴ آبان | — |
تعطیلات رسمی ۳۰ روز آینده
- شنبه ۲۳ آبان ۱۴۰۵: شهادت حضرت فاطمه زهرا (پیشبینی ±۱ روز)
دستکم یکی از تعطیلات بالا قمری است و تاریخ آن تا اعلام رسمی (بر پایه رؤیت هلال) ممکن است یک روز جابهجا شود. در زمانبندی تسویه و سررسیدها یک روز حاشیه در نظر بگیرید.
همین محاسبهها از طریق API تقویم، کیت توسعه، خط فرمان و سرور MCP در دسترساند.