Məzmuna keç
TURANYOLDeveloperlər

Sandbox və test məlumatları

Sandbox API-nin öz bazası üzərində işləyən tam surətidir. Eyni kod, eyni qaydalar, eyni xəta kodları — fərqli məlumatlar və real müştəriyə çatan heç nə yoxdur.

Baza URL-lər

base urls
live     https://api.turanyol.com
sandbox  http://localhost:3050

Açarlar bir mühitə bağlıdır

Sandbox kimi yaradılmış açar yalnız sandbox baza URL-i ilə, canlı açar isə yalnız canlı URL ilə işləyir. Səhvini göndərmək ERR_API_KEY_ENVIRONMENT ilə rədd edilir — bu, etibarsız açardan qəsdən fərqlidir ki, konfiqurasiya səhvini etimadnamə probleminden ayıra biləsiniz.

ERR_API_KEY_ENVIRONMENT

Test telefon nömrələri

Giriş telefon OTP ilə olur. Sandbox-da provayder mock-dur: kod cavabda qaytarılır və giriş ekranında göstərilir, ona görə heç vaxt SMS göndərilmir.

Test hesabları
RolTelefonQeydlər
Partnyor+994500000040Kargo Express — orders:read, orders:pii, logistics:write
Partnyor+994500000041PayAZ — payments:read
Müştəri+994500000100Aysel Məmmədova — ES-1049, ES-1025, ES-1001
Satıcı+994500000010Vendor A-101
Sürücü+994500000020B-2083 completed, B-2084 assigned
Kuryer+994500000030Hub pickup queue
Dəstək əməkdaşı+994500000002Günel Rəhimova
Administrator+994500000001Kamil Hüseynov

Seed məlumatları

Sandbox real Bakı məlumatları ilə deterministik seed-dən qurulur — Sadarak dükanları, az/ru/en kateqoriyalar, 20 Yanvar, Gənclik, Yasamal, Nərimanov və Nizamidə müştərilər, bütün statuslarda sifarişlər, sürücülər və paketlər.

Mock kart ödənişi axını

Sandbox-da kart ödənişləri mock provayderdən keçir, ona görə bütün axını PSP olmadan sınaya bilərsiniz:

  1. paymentMethod CARD ilə sifariş verin. Sifariş UNPAID statusunda, ödəniş niyyəti və checkoutUrl ilə qayıdır.
  2. Checkout URL-i açın. Mock provayder “Ödə” və “Uğursuz” düymələri olan kiçik səhifə verir.
  3. Nəticəni seçmək provayderin API-yə imzalanmış vebhuk göndərməsinə səbəb olur — real PSP-nin istifadə edəcəyi eyni vebhuk yolu.
  4. Sifariş PAID olur və ya niyyət FAILED olur, müştəri isə dəyişikliyi realtime kanalda görür.
Ödənilməmiş kart sifarişləri təyin olunmuş ödəniş vaxtından sonra avtomatik ləğv olunur ki, yarımçıq test anbarı əbədi bloklamasın.

Sandbox-un sıfırlanması

Sandbox bazası birdəfəlikdir. Sıfırlamağı bizdən xahiş edin, yaxud stack-i özünüz işlədirsinizsə:

shell
# 1. stop the sandbox API
pnpm --filter @turanyol/api exec -- true   # (stop the 'dev:api:sandbox' process)

# 2. re-apply migrations and re-seed the sandbox database
DATABASE_URL=postgresql://esadarak:esadarak@localhost:5433/esadarak_sandbox?schema=public \
  pnpm --filter @turanyol/api prisma:deploy
DATABASE_URL=postgresql://esadarak:esadarak@localhost:5433/esadarak_sandbox?schema=public \
  pnpm db:seed

# 3. start it again
pnpm dev:api:sandbox
Sıfırlama canlı API-də heç nəyi ləğv etmir: oradakı açarlar, vebhuklar və sifarişlər toxunulmaz qalır.

Nə fərqlənmir

Scope-lar, sürət limitləri, sifariş vəziyyət maşını və vebhuk imza sxemi produksiyadakı kimi işləyir. Sandbox-da işləyirsə, canlıda da işləyir — məqsəd elə budur.

Sandbox statusu