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

Худалдагч, дэд худалдагч, терминал

Худалдагч апп (kind: "merchant") дотор хоёр нэмэлт объект: терминал (хаана төлөх) ба дэд худалдагч (хэний мөнгө). Хэрэглээ ба API: Gerege App-аар төлөх.

1. Худалдагч

Gerege App-аас гадуурх таны систем — вэб дэлгүүр, апп, касс, kiosk, вендинг. Launcher-т гарахгүй, manifest-гүй; бүртгэлээр scope нь profile.basic + payments. Review нь хуулийн хуудсууд (privacy, terms, support — 200 хариулах), webhook URL, live secret-ийг шаардана; дараа нь оператор бизнесийг шалгаж батлаад payout дансыг тохируулна. kind ба return_hosts нь мэдрэг талбар — зөвхөн ноорог эсвэл татгалзсан үед өөрчлөгдөнө (409 needs_review): төлсний дараа хүнийг хаашаа илгээхийг review харсан байх ёстой.

2. Терминал

Байнгын цэг: QR sticker, NFC tag, вендинг машин, касс.

  • Sticker дүнгүй. Терминалын url (https://geregeapp.mn/pay/t/<code>) зөвхөн терминалыг нэрлэнэ. Дүн нь тухайн мөчид терминалд уясан нээлттэй intent-ээс — sticker-ийг хэн ч хуулж болно, гэхдээ дүнг өөрчилж чадахгүй.
  • Нэг терминал — нэг нээлттэй сагс, орчин бүрт. Claim хийгдээгүй нээлттэй intent терминалд live-д нэг, test-д нэг (409 terminal_busy нь нээлттэйг нэрлэнэ). Test сагс бодит машиныг хаахгүй; апп-ын эзэн ба тест хэрэглэгчид терминал уншуулахад test сагсыг эхэлж, бусад хүн зөвхөн live-ийг авна; нийтийн /pay/t хуудас зөвхөн live-ийг харуулна.
  • Бүртгэлийн нэр төлөх цонхонд. label, location хүний утсанд Face ID-аас өмнө гарна. Өөр sticker наасан бол хүн буруу машины нэрийг харж зогсоно.
  • code өөрчлөгдөхгүй. Сервер олгоно (10 тэмдэгт). reference — таны машины дугаар, апп дотор өвөрмөц (дахин POST → тэр терминал).
  • Бичих нь live түлхүүр эсвэл консол. Терминал хоёр орчинд нэг бүртгэл тул test түлхүүр уншина л (403 live_only) — алдагдсан sandbox secret бодит машины эзэмшигчийг сольж, live мөнгийг өөр тийш чиглүүлэх ёсгүй.
  • status: "disabled" терминалын сагсыг token-оор ч төлөхгүй (409 terminal_disabled).

3. Дэд худалдагч

Олон эзэмшигчтэй платформ (vending.mn — машин бүр өөр эзэнтэй; kiosk hub — үйлчилгээ үзүүлэгч бүр) нэг худалдагч апп дотор эзэмшигч бүрийг дэд худалдагч болгоно. Платформ нь худалдагч (merchant of record); эзэмшигч бүр өөрийн payout данс, өөрийн тооцоотой — дүрэм (шимтгэл, хуваарь) нь апп-ынх.

  • code — таны платформын эзэмшигчийн id, өөрчлөгдөхгүй (400 code_immutable); ижил code-оор дахин POST → тэр мөр.
  • display_name хүний төлөх цонхонд гарна.
  • Терминал дэд худалдагчтай бол түүний intent автоматаар тэр дэд худалдагчийнх.

4. Payout холболт — эзэмшигч өөрөө батална

Таны сервер эзэмшигчийн орлогыг дурын данс руу чиглүүлж чадахгүй. Чадвал таны сервер эвдрэхэд бүх эзэмшигчийн мөнгийг нэг дор өөр тийш эргүүлэх зам болно. Тиймээс:

таны сервер ─ POST /sub-merchants/{id}/payout-link {account} (live) ─▶ Gerege
                                                                     │ мэдэгдэл
                                     дансны эзэмшигч (хүн / байгууллагын админ) ◀┘
                                     Gerege App: «{апп}-ын хүсэлт» + нөхцөл → Face ID → батлах / татгалзах
дэд худалдагч.payouts_configured = true ◀─ батлагдвал
  • Хэн батлах: дэвтэрт бүртгэлтэй дансны эзэмшигч — хүний данс бол тэр хүн; байгууллагын данс бол тухайн байгууллагын одоогийн админуудын аль нэг (батлах агшинд дахин шалгана).
  • Нөхцөл (terms): батлах нь «энэ данс руу орсон төлбөрүүдийн буцаалт (90 хоногийн дотор) энэ данснаас хасагдана» гэдгийг зөвшөөрөх — тооцоо асаагүй үед буцаалт шууд эзэмшигчийн данснаас гардаг.
  • Хүсэлт 7 хоногт хүчинтэй; төлөв pending | approved | declined | canceled | superseded | expired.
  • Payout батлагдаагүй дэд худалдагчийн live intent үүсэхгүй (409 payouts_not_configured). Test-д хамаарахгүй.
  • Payout холболт хүсэх нь зөвхөн live түлхүүр (403 live_only).

5. Хэрэглээний загварууд

Худалдагч апп Дэд худалдагч Терминал
Ганц дэлгүүр 1 — касс бүр (сонголтоор)
Вендинг платформ 1 (платформ) машины эзэмшигч бүр машин бүр
Kiosk hub 1 (hub) үйлчилгээ үзүүлэгч бүр kiosk бүр «удахгүй» (qr intent-д terminal_id одоо зөвшөөрөгдөхгүй)
POS нийлүүлэгч 1 (нийлүүлэгч) дэлгүүр бүр касс бүр

Дэлгүүр өөрөө худалдагч байж, POS нийлүүлэгчид түлхүүр үүсгэх эрх олгох (partner authorization) — «удахгүй».