Ağ hatası aldığınızda isteğin işlenip işlenmediğini bilemezsiniz. Yeniden
göndermek çift tahsilat riskidir; göndermemek kayıp satış. Idempotency-Key
başlığı bu ikilemi çözer:
Koruma /v1/payments, /v1/refunds ve /v1/subscriptions altındaki POST
isteklerini kapsar. Başlık zorunlu değildir; göndermezseniz koruma da yoktur —
para hareketi başlatan her istekte göndermenizi öneririz.
Davranış tablosu
Anahtar; metod, yol ve ham istek gövdesiyle birlikte değerlendirilir:
Bilinmesi gereken incelikler
- Doğrulama ve iş kuralı redleri anahtarı yakmaz.
400 validation_failed
ya da 409 installments.not_offered gibi belirlenimci bir redden sonra aynı
anahtarla düzeltilmiş isteği gönderebilirsiniz.
- Beklenmeyen hata (5xx) anahtarı serbest bırakmaz. Sonuç bilinmediği için
kayıt “işleniyor”da kalır ve 2 dakika sonra
stale’e düşer — bu noktada doğru
hareket ödemenin durumunu sorgulamaktır, körlemesine yeniden göndermek değil.
- Anahtar kiracıya bağlıdır: kimliği çözülemeyen istek koruma katmanına hiç
girmez, dolayısıyla yetkisiz biri sizin adınıza anahtar yakamaz.
- Anahtarı kendi iş kaydınızdan türetin (
siparis-8842 gibi) — yeniden deneme
mantığınız hangi anahtarı kullanacağını hatırlamak zorunda kalmaz.
Kartın reddedilmesi (status: failed, HTTP 200) isteğin tamamlanmış bir
sonucudur ve aynen tekrar oynatılır. Müşteri yeni bir deneme yapacaksa yeni
bir ödeme ve yeni bir anahtar kullanın.