Autentifikatsiya
/api/payments/v1/ ga yuborilgan har bir soʻrov, ulanishdan tashqari, qurilma
hisob maʼlumotini olib yuradi:
Authorization: Bearer sit_pd_<hex>Ulanish: bitta kod, bitta ishlatish
“Ulanish: bitta kod, bitta ishlatish” bo'limiQurilmani restoran egasi Sitora Bizʼda roʻyxatdan oʻtkazadi, soʻng uni bir
martalik ulanish kodi bilan qurollantiradi. Kod bir soat yashaydi va bir
marta ishlatishga yaraydi. Uni ishlatish — bu yuzadagi yagona anonim amal:
kodning oʻzi maxfiy, shuning uchun endpoint IP boʻyicha cheklangan, va
notanish, ishlatilgan hamda muddati oʻtgan kodlar bir xil javob beradi — 400
va {"code": "enrollment_invalid"}.
Ishlatish hisob maʼlumotini roppa-rosa bir marta qaytaradi. Sitora faqat xeshni saqlaydi; kalitingizni qayta qaytaradigan endpoint yoʻq.
Yangi ulanish kodini berish ayni paytda qayta tiklash tutqichi hamdir: u avvalo oʻsha qurilmaning barcha tirik hisob maʼlumotlarini bekor qiladi, shuning uchun eski kalit va ishlatiladigan kod hech qachon bir vaqtda amal qilmaydi.
Hisob maʼlumoti — mashina subyekti
“Hisob maʼlumoti — mashina subyekti” bo'limiQurilma hisob maʼlumoti foydalanuvchi hisobi emas. Uning aʼzoligi, roli va xodim ruxsatlari yoʻq. U hech qachon buyurtma, tranzaksiya yoki sessiya yarata olmaydi va hech qachon biror narsada harakat qiluvchi sifatida koʻrinmaydi.
Qurilma yonida ishlaydigan xodimlar — smart kassadagi kassir — oʻzlarining odatdagi Sitora Pro sessiyasi bilan oʻzlari sifatida autentifikatsiyadan oʻtadi. Bitta soʻrov har doim roppa-rosa bitta subyekt: inson amallari xodim sessiyasida, qurilma yuzasi esa qurilma hisob maʼlumotida yuradi. Birini ikkinchisining oʻrniga ishlatishga urinmang.
Qamrov keltirib chiqariladi, yuborilmaydi
“Qamrov keltirib chiqariladi, yuborilmaydi” bo'limiHisob maʼlumoti roppa-rosa bitta qurilmaga hal boʻladi, u esa roppa-rosa bitta filialdagi roppa-rosa bitta kassaga tegishli. Siz filial yoki kassa identifikatorini hech qachon yubormaysiz — Sitora ularni kalitdan keltirib chiqaradi. Bitta kassaning hisob maʼlumoti boshqasining ishini bitta restoran ichida ham koʻra olmaydi.
Scopeʼlar imkoniyatlarga ergashadi
“Scopeʼlar imkoniyatlarga ergashadi” bo'limi| Scope | Qurilma nimani eʼlon qilganda beriladi | Nimaga ruxsat beradi |
|---|---|---|
device:heartbeat |
doim | Heartbeat va oʻzi haqidagi surat |
device:display |
qr_dynamic_present yoki customer_total_display |
Ekran navbati |
intents:read_assigned |
payment_app_handoff |
Tayinlovni oʻqish |
intents:report_handoff |
payment_app_handoff |
Natija haqida xabar berish |
Scopeʼlar imkoniyatlardan keltirib chiqarilgani uchun qurilmaning imkoniyatlarini oʻzgartirish uni qaytadan ulashni bildiradi — aynan shuning uchun kod berish eski kalitni bekor qiladi.
Vakolat har bir soʻrovda qayta keltirib chiqariladi
“Vakolat har bir soʻrovda qayta keltirib chiqariladi” bo'limiAvtorizatsiya ulanish paytida bir marta hal qilinmaydi. Har bir soʻrov platforma muzlatilmaganini, qurilma faolligini, uning kassasi faolligini va filial faolligini qaytadan tekshiradi. Shuning uchun pauza keyingi chaqiruvdayoq, smena oʻrtasida kuchga kiradi va kutib oʻtiriladigan kesh yoʻq.
Rad etish oʻz sababini nomlaydi:
| Sabab | Maʼnosi |
|---|---|
platform_frozen |
Provayder orqali pul yigʻish butun platformada muzlatilgan (faqat ekranlar) |
device_paused / device_retired |
Ega bu qurilmani toʻxtatdi yoki chiqarib tashladi |
device_not_enrolled |
Qurilma yangi ulanish kodi ishlatilishini kutmoqda |
station_retired |
Qurilma xizmat koʻrsatadigan kassa chiqarib tashlangan |
filial_inactive |
Filial faol emas |
403 ning oʻzi mashina oʻqiy oladigan emas: uning tanasi —
{"detail": "Device credential refused: station_retired."}, sabab esa gap
ichida. Sabab boʻyicha shoxlash uchun uni qurilmaning oʻz suratidan alohida
maydon sifatida oʻqing:
GET /api/payments/v1/devices/me/Bu endpoint heartbeat qaytaradigan suratning oʻzini beradi — qurilmaning nomi,
turi, imkoniyatlari, holati, kassasining nomi va holati, sozlangan topshirish
nishoni — ustiga blocked_reason, u yuqoridagi jadvaldagi kodni yoki qurilma
vakolatli boʻlsa boʻsh satrni olib yuradi. Unga faqat device:heartbeat kerak,
shuning uchun roʻyxatdan oʻtgan har qanday qurilma soʻray oladi.
401 ni qayta urinish bilan emas, yangi ulanish kodi soʻrash bilan hal
qiling: bekor qilingan kalit hech qachon qayta amal qilmaydi. 403 ni sababni
koʻrsatish va heartbeat yuborishda davom etish bilan hal qiling — vakolat
sizdan hech qanday harakatsiz qaytishi mumkin.