Шаардлага — hosting, аюулгүй байдал, UX, контент, review¶
1. Hosting¶
- HTTPS (TLS 1.2+, хүчинтэй сертификат), HSTS ЗӨВЛӨЖ БАЙНА. Origin нийтийн IP-тэй (платформ дотоод хаяг руу
manifest/webhook-ийн төлөө залгахгүй). Засвар бол консолоос
maintenanceболгоно. /.well-known/gerege-miniapp.json(эсвэлopenpay-miniapp.json) — manifest.md, redirect-гүй.- Вэб host (iframe) «удахгүй» — тэр үед
Content-Security-Policy: frame-ancestorsшаардлага нэмэгдэнэ. ОдооX-Frame-Options-ийг тавьсан ч iOS WebView-д нөлөөлөхгүй. - Гүйцэтгэл (4G, дунд зэргийн утас): эхний дэлгэц (
ready) ≤ 2.5 с, эхний ачааллын JS ≤ 300 KB gzip, зураг WebP/AVIF, lazy-load. - Дэмжих: iOS 17+ WebKit. (Android WebView — Android host гарах үед.)
2. Аюулгүй байдал¶
- Client secret, access/refresh token, webhook secret — зөвхөн backend-д. Frontend bundle, лог, аналитик, URL-д ХОРИГЛОНО.
launchпараметрийг URL-аас тэр даруй арилгана;Referrer-Policy: strict-origin-when-cross-originба түүнээс хатуу.- Хүний нэвтрэлт зөвхөн Gerege-ийн launch-аар (өөрийн нууц үг/OTP форм ХОРИГЛОНО).
- Төлбөр зөвхөн payments.md-ээр; webhook гарын үсэг шалгах (webhooks.md).
- OWASP ASVS L1 доод түвшин: XSS (хатуу CSP
script-src), CSRF (cookie ашиглавал), input validation, dependency scan. - Хувийн мэдээлэл: Монгол Улсын Хүний хувийн мэдээлэл хамгаалах тухай хууль; зөвхөн scope-оор авсан мэдээлэл,
зорилгоор нь; устгах хүсэлтэд 30 хоногт.
sub/user_ref-ийг гадны аналитикт илгээхгүй. - Аюулгүй байдлын зөрчлийг 24 цагт операторт мэдэгдэнэ.
3. UX ба дизайн¶
- Mobile-first, 320–430 px өргөн. Хэвтээ scroll ХОРИГЛОНО.
getContext().theme(light/dark) баsafe_area-г дагана. Host толгой (гарчиг, хаах) өөрөө байна — давхар «буцах/хаах» толгой хийхгүй; дотоод навигацид буцах товч болно.- Хэл: Монгол заавал;
localeөөр бол англи ЗӨВЛӨЖ БАЙНА. Мөнгө45,000₮(бүхэл), огноо Asia/Ulaanbaatar. - Хүрэх талбай ≥ 44×44 pt, үндсэн текст ≥ 15 pt, контраст WCAG AA.
- Ачаалал: skeleton; алдаа бүрт ойлгомжтой Монгол мессеж + дахин оролдох.
accent_color-оо гол товчинд ашиглаж болно. Gerege-ийн лого/нэрийг өөрийн брэнд мэт ашиглах ХОРИГЛОНО.- «Удахгүй» товч, ажиллахгүй товч, хоосон placeholder дэлгэц ХОРИГЛОНО (mini app дотор).
4. Контент ба бизнес¶
- Монгол Улсын хууль, App Store / Google Play-ийн бодлого. Хориотой: зөвшөөрөлгүй мөрийтэй тоглоом, хууль бус бараа, насанд хүрээгүйд 18+ контент, төөрөгдүүлэх сурталчилгаа.
- Үнэ, нөхцөл, буцаалтын бодлогыг төлбөрөөс өмнө ил харуулна.
- iOS дээр апп дотор хэрэглэгдэх дижитал контент (subscription, тоглоомын эрх) — Apple-ийн бодлогоор IAP шаардагдана; хэтэвчээр зөвхөн апп-аас гадуур хэрэглэгдэх бараа/үйлчилгээ (eSIM, тийз, хоол) зарна.
- Дэмжлэгийн суваг (
legal.support_url) ажлын өдөрт 24 цагт хариулна. И-баримт — developer-ийн үүрэг (intent-ийнreference-ээр холбоно).
5. Review checklist¶
| # | Шалгах зүйл |
|---|---|
| 1 | Manifest schema, verification, origin, icon 512, legal URL-ууд |
| 2 | Нээгдэх: ready ≤ 2.5 с, light/dark, safe area, 320 px |
| 3 | Session: launch → backend солилцоо; frontend-д token/secret байхгүй (bundle + network шалгах) |
| 4 | Төлбөр: дүн backend-ээс, intent → requestPayment → webhook/GET шалгасны дараа олгох; давхар олголтгүй |
| 5 | Буцаалт/цуцлалтын урсгал; manual бол capture/cancel-ийг 7 хоногт шийддэг |
| 6 | Webhook гарын үсэг, replay, dedupe |
| 7 | openExternal зөвхөн зарласан URL; өөр нэвтрэлт/төлбөрийн форм байхгүй |
| 8 | Монгол текст, алдааны мессеж |
| 9 | Хувийн мэдээлэл: scope-оос илүү асуухгүй, privacy policy |
| 10 | Тусгай ангилал (тоглоом/санхүү) — зөвшөөрлийн баримт |
Submit-ийн автомат шаардлага: шалгагдсан manifest, privacy/terms/support холбоос, live client secret,
payments scope-той бол webhook URL. Manifest шалгалт нь 512 icon-ыг (PNG, яг 512×512) татаж, гурван legal
хуудас redirect-гүйгээр 200 хариулахыг шаардана. 18+ эсвэл баталгаажсан хүнд зориулсан үйлчилгээ бол
manifest-д min_age / requires_verified зарла — платформ нээлтэд өөрөө хэрэгжүүлнэ (auth.md §1.1).
Review-ээс өмнө тест хэрэглэгч, тест төлбөр, webhook.test-ээр бүх урсгалаа шалга (console.md).