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 هستند.