Idempotency
Мутаци хийдэг хүсэлтийг давхардал үүсгэхгүйгээр аюулгүй дахин оролд.
Сервер хүсэлтийг боловсруулсны дараа сүлжээний дуудлага бүтэлгүйтэж болно.
Дахин оролдлогыг аюулгүй болгохын тулд Wire нь мутаци хийдэг POST хүсэлтэд
idempotency key дэмждэг.
Idempotency-Key нь PaymentIntent болон checkout session үүсгэхийг оруулаад
мутаци хийдэг POST бүрд заавал шаардлагатай.
curl https://api.wire.mn/v1/payment_intents \
-H "Authorization: Bearer sk_live_..." \
-H "Idempotency-Key: order-1001" \
-d amount=50000 -d currency=MNTХэрхэн ажилладаг вэ
- Сервер эхний хүсэлтийн үр дүнг таны key-ийн дор хадгална.
- Ижил key-г дахин илгээвэл анхны хариуг буцаана — давхардсан object үүсэхгүй.
- Логик үйлдэл бүрд давтагдашгүй, тогтвортой key ашигла (жишээ нь захиалгын id). Жинхэнэ шинэ үйлдэлд шинэ UUID үүсгэ.
SDK ашиглалт
pi, err := client.PaymentIntents.Create(ctx, &wire.PaymentIntentCreateParams{
Amount: 50000,
Currency: "MNT",
IdempotencyKey: "order-1001",
})pi = client.payment_intents.create(
amount=50000, currency="MNT", idempotency_key="order-1001",
)const pi = await wire.paymentIntents.create({
amount: 50000,
currency: "MNT",
idempotencyKey: "order-1001",
});