پرش به محتوای اصلی

Idempotency

تکرار امن درخواست‌ها.

با هدر Idempotency-Key می‌توانید یک درخواست را با خیال راحت تکرار کنید؛ مثلاً وقتی ارتباط پیش از دریافت پاسخ قطع شده است.

http
Idempotency-Key: order-1042-create-1
  • کلید ۸ تا ۱۲۸ کاراکتر از حروف انگلیسی، عدد و . _ : - است.
  • همان کلید با همان بدنه: پاسخ ذخیره‌شده اول (موفق یا خطای قطعی 4xx) با هدر Idempotent-Replayed: true برمی‌گردد. پاسخ‌های 409 و 429 ذخیره نمی‌شوند و می‌توانید با همان کلید دوباره تلاش کنید.
  • همان کلید با بدنه متفاوت: 422 idempotency_key_reused.
  • درخواست اول هنوز در حال پردازش: 409 idempotency_in_progress؛ چند ثانیه بعد تکرار کنید.
  • اگر درخواست با خطای 5xx تمام شود، کلید آزاد می‌شود و می‌توانید دوباره تلاش کنید.
  • استرداد با نتیجه نامشخص پاسخ 202 می‌گیرد و همین پاسخ برای تکرار با همان کلید برمی‌گردد؛ استرداد دوباره ارسال نمی‌شود.
  • برای هر تلاش پرداخت یک کلید و یک merchant_reference جدید بسازید (مثلاً order-1042-create-2 و ORDER-1042-2).
  • کلیدها ۲۴ ساعت نگهداری می‌شوند.

برای ایجاد پرداخت توصیه می‌شود و برای استرداد الزامی است. verify و reverse ذاتاً idempotent هستند.