Орчин: Sandbox vs Production
gov-pay channel-api-н sandbox болон production орчны base URL, X-API-Key, ялгаа болон CORS тэмдэглэл.
gov-pay channel-api нь хоёр үндсэн орчинтой: туршилтад зориулсан Sandbox болон бодит ажиллагааны Production. Локал хөгжүүлэлтэд гуравдахь хувилбар бий. Бүх орчинд endpoint-ийн зам бүхэлдээ /api/v1 угтвартай, authentication-д X-API-Key header шаардагдана.
Base URL-ууд
| Орчин | Base URL | Зориулалт |
|---|---|---|
| Sandbox | https://sandbox-tts.qpay.mn/api/v1 | Интеграц туршилт, бодит мөнгө биш |
| Production | https://tts.qpay.mn/api/v1 | Бодит ажиллагаа, бодит төлбөр |
| Local dev | http://localhost:5600/api/v1 | Локал хөгжүүлэлт |
Бүх зам аль хэдийн /api/v1 угтвартай тул endpoint-ийг дуудахдаа base URL дээр шууд залгана. Жишээ нь invoice хайхад:
curl "https://sandbox-tts.qpay.mn/api/v1/invoices?ttd=1234567" \
-H "X-API-Key: $GOVPAY_API_KEY"curl "https://tts.qpay.mn/api/v1/invoices?ttd=1234567" \
-H "X-API-Key: $GOVPAY_API_KEY"Орчин бүрд тусдаа X-API-Key
Sandbox болон production нь бие даасан API key-тэй. Sandbox key-ээр production endpoint-д хандах боломжгүй, эсрэгээрээ ч мөн адил.
Sandbox key-г кодын дотор hardcode хийхгүй, орчны хувьсагч (GOVPAY_API_KEY гэх мэт) болгож хадгал. Production руу шилжихдээ зөвхөн base URL болон key-г л солих ёстой — кодын логик хэвээр үлдэнэ.
X-API-Key header байхгүй эсвэл буруу бол 401, партнёр идэвхгүй бол 403 буцна. Бүрэн жагсаалтыг Алдааны кодууд хуудаснаас үзнэ үү.
Sandbox vs Production-ийн ялгаа
- Sandbox нь туршилтын орчин. Энд хийсэн төлбөр нь mock/туршилтын урсгал бөгөөд бодит мөнгө шилжихгүй. Интеграцийн логик, webhook урсгал, алдааны боловсруулалтаа аюулгүйгээр шалгах боломжтой.
- Production нь бодит ажиллагааны орчин. Энд POST /payments дуудах нь бодит нэхэмжлэлийг бодит мөнгөөр төлнө.
Endpoint-ийн нэр, хүсэлт/хариуны бүтэц, статусын утгууд хоёр орчинд ижил байдаг тул sandbox дээр бүрэн туршсан кодоо production руу шилжүүлэхэд бүтцийн өөрчлөлт шаардлагагүй.
Production руу шилжихээсээ өмнө sandbox дээр төлбөрийн амжилттай ба амжилтгүй (422) урсгал, Webhook хүлээн авалт, Гарын үсэг шалгах логикоо бүрэн туршихыг зөвлөж байна.
Health endpoint-ууд
/health/live ба /health/ready нь authentication шаардахгүй цорын ганц endpoint-ууд — орчны хүртээмжийг шалгахад ашиглана.
# Сервер амьд эсэх
curl https://sandbox-tts.qpay.mn/api/v1/health/live
# DB-той холбоо бэлэн эсэх
curl https://sandbox-tts.qpay.mn/api/v1/health/readyRate limit
API key тус бүрд rate limit үйлчилнэ: 5/сек, 60/мин, 1000/цаг. Хэтэрвэл 429 буцна. Sandbox болон production-д тус тусын key-д тооцоологдоно.
CORS / origin тэмдэглэл
channel-api нь сервер талаас дуудагдахаар зориулагдсан backend-to-backend API юм. X-API-Key-г браузер дахь frontend код руу задлахгүй — secret хэвээр сервер талд хадгална.
API key-г client-side JavaScript-д ил гаргаж браузераас шууд дуудах нь key алдагдах эрсдэлтэй. Хүсэлтийг өөрийн backend-ээр дамжуулж проксидоно уу.
Дараагийн алхам
Sandbox key авах, эхний хүсэлт илгээх дэлгэрэнгүйг Sandbox тохиргоо хуудаснаас үзнэ үү.