Asosiy kontentga o'tish
MilliySavdo

Sandbox (demo muhit)

ms_test_ kalitlar bilan integratsiyani pulsiz sinang: simulyatsiya qilingan raqamlar, ~8 soniyada SMS va boshqariladigan stsenariylar.

Sandbox nima#

Test kalit bilan yuborilgan har bir so'rov haqiqiy katalog va narxlarni qaytaradi, lekin buyurtmalar simulyatsiya qilinadi: provayderdan raqam olinmaydi, balansdan pul yechilmaydi. Javob formatlari live bilan bir xil — faqat kalitni almashtirasiz.

  • Buyurtma ID: ord_test_<n>, javobda "mode": "test".
  • Standart holatda SMS kod ~8 soniyadan so'ng keladi.
  • Test buyurtmalar uchun webhooklar test rejimidagi endpointlarga yuboriladi.
  • Test balansi alohida (virtual) va haqiqiy pulga bog'liq emas.
{
  "object": "balance",
  "mode": "test",
  "amount": "1000000.00",
  "amount_cents": 100000000,
  "currency": "UZS",
  "note": "Sandbox: virtual balans, buyurtmalar pul yechmaydi"
}

Stsenariylar#

POST /v1/orders body'sida sandbox_scenario maydoni bilan natijani tanlaysiz (faqat test kalitlar):

QiymatNatija
success (standart)~8 soniyada SMS keladi → sms_received
no_smsSMS kelmaydi, 20 daqiqadan keyin expired (pul qaytishi simulyatsiyasi)
expire_fast30 soniyada expired — timeout mantiqini tez sinash uchun
Terminal
curl -X POST https://api.milliysavdo.uz/v1/orders \
  -H "Authorization: Bearer $MILLIYSAVDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country_id": 6, "service_code": "907", "sandbox_scenario": "expire_fast"}'

Diqqat

Live kalit bilan sandbox_scenario yuborilsa, 400 invalid_request qaytadi — maydonni faqat test muhitida yuboring.

Sandbox limitlari#

Test rejimida limitlar pastroq (masalan, 30 so'rov/daqiqa, 50 buyurtma/kun, 3 ta faol buyurtma). Aniq qiymatlarni kabinetdagi Limitlar sahifasida va har bir javobning RateLimit-* headerlarida ko'rasiz.

Live ga o'tishdan oldin tekshiring#

  • success, no_sms va expire_fast stsenariylarini qayta ishlaysizmi?
  • Idempotency-Key yuborasizmi va takror javobni (200) to'g'ri qabul qilasizmi?
  • 402 insufficient_balance, 409 out_of_stock va 429 xatolarini foydalanuvchiga tushunarli ko'rsatasizmi?
  • Webhook imzosini tekshirasiz va webhook-id bo'yicha dublikatlarni tashlaysizmi?