Kontentga o'tish

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'limi

Qurilmani 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'limi

Qurilma 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'limi

Hisob 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'limi

Avtorizatsiya 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.