Агуулгыг алгасах

Хувилбар ба нийцэл

API хэрхэн өөрчлөгдөх, таны интеграци юуг ЗААВАЛ тэсвэрлэх, юу хэзээ ч гэнэт өөрчлөгдөхгүй.

1. Дүрэм

  • Major нь замд: /api/v1/miniapp, bridge-д bridge_version (одоо 1). Эвдэх өөрчлөлт = шинэ major (/v2) — хуучин нь зэрэгцэн ажилласаар.
  • Minor зөвхөн нэмнэ: шинэ талбар, шинэ event type, шинэ төлөв, шинэ алдааны code, шинэ bridge method, шинэ route. Байгаа талбарын нэр, төрөл, утга өөрчлөгдөхгүй, хасагдахгүй.
  • Серверийн хувилбар нь модулийн хувилбар (одоо modules/miniapp 1.9.0) — App Store-ын «Mini апп-ууд»-ын түүхэнд (chronicle) mn/en тэмдэглэлтэй.

2. Таны интеграци ЗААВАЛ

  • Мэдэхгүй талбарыг үл тоох — JSON-оо strict schema-аар (additionalProperties: false) бүү задал.
  • Мэдэхгүй event type-д 2xx хариулна (хүлээн авч, юу ч хийхгүй) — 5xx бол retry-ийн хуваарь дуустал дахин ирнэ.
  • Мэдэхгүй status / failure_code-ийг «дууссан биш, тодорхойгүй» гэж үзээд GET-ээр дахин уншина.
  • Мэдэхгүй алдааны code — HTTP статусаар нь шийднэ (4xx давтахгүй, 5xx давтана).
  • Объектын id-г (pi_…, evt_…) opaque мөр гэж үзнэ — урт, бүтцэд нь бүү найд.

3. OMAS-тай нийцэл

Gerege mini app нь OMAS 1.0 (openpay-ийн mini app стандарт)-ын хэрэгжилт — OMAS-д бичсэн backend зөвхөн утгаа сольж ажиллана:

  • manifest openpay-miniapp.json нэрээр ч уншигдана;
  • webhook OpenPay-Signature, OpenPay-Event-Id толгойтой давхар ирнэ;
  • token endpoint grant_type=launch_code ба JSON body-г ч хүлээн авна;
  • app intent-ийн хугацаа дуусахад payment_intent.canceled + status: "expired" (шинэ payment_intent.expired-ийг зөвхөн claimless intent авна).

4. Хуучрах (deprecation)

Хасах зүйлийг дор хаяж 6 сарын өмнө зарлаж, хариунд Deprecation ба Sunset толгой (RFC 8594) нэмнэ — «удахгүй» (одоогоор хуучирсан зүйл байхгүй). Одоогийн жишээ: анхдагч mapp_… / gma_cs_… хос (бүх scope) нь scope-той gk_… түлхүүр гарсны дараа ч ажилласаар байна; зогсоох огноог тусад нь зарлана.

5. Өөрчлөлтийн түүх

Хувилбар бүрийн өөрчлөлт (mn/en) — Өөрчлөлтийн түүх (App Store-ын «Mini апп-ууд»-ын түүхтэй ижил эхээс үүсгэгддэг).