Kontentga o'tish

Tez boshlash

  1. Restoran egasi qurilmangizni Sitora Bizʼda bitta kassaga biriktirib roʻyxatdan oʻtkazadi, uning imkoniyatlarini va (smart kassa uchun) yonidagi toʻlov ilovasining ishga tushirish havolasini eʼlon qiladi.
  2. Ega bir martalik ulanish kodini beradi va uni sizga aytadi yoki qurilmaga kiritadi.
  3. Qurilmangiz kodni bir marta ishlatadi va hisob maʼlumotini oladi — u roppa- rosa bir marta koʻrsatiladi.
  4. Soʻrang, harakat qiling, xabar bering.
  5. Muvofiqlik toʻplamidan oʻting. Muvaffaqiyatli oʻtish har bir imkoniyat uchun sertifikat artefakti sifatida qayd etiladi.

Sitoradan sinov muhitini soʻrang — oʻrnatma sizga sinov filialini tayyorlab beradi. Unda kassa, mehmonga qaragan ekran, smart kassa hamrohi, toʻlov ruxsatiga haqiqatan ega kassir va provayderning sinov muhitidagi sozlamasi boʻladi. Qurilma hisob maʼlumotlari va kassir kirishi bir marta beriladi.

Hammasi ishlab turgan tizimdagidek ishlaydi: bir xil endpointlar, bir xil cheklovlar, bir xil rad etish kodlari, bir xil favqulodda oʻchirgichlar.

Terminal window
# 1. Bir martalik ulanish kodini ishlatish (anonim — kodning oʻzi maxfiy)
curl -X POST -H 'Content-Type: application/json' \
-d '{"code":"<enrollment-code>"}' \
"https://<host>/api/payments/v1/devices/enroll/"
# 2. Belgi berib turing. Buni taymer boʻyicha qiling — heartbeatsiz uch daqiqa
# oʻtsa, qurilma oflayn hisoblanadi va unga muhtoj marshrutlar kassirga
# taklif qilinmay qoʻyadi. Har 30 soniyada bir marta paket yoʻqolishiga
# zaxira qoldiradi.
curl -X POST -H "Authorization: Bearer sit_pd_..." \
-H 'Content-Type: application/json' -d '{"summary":{"battery":91}}' \
"https://<host>/api/payments/v1/devices/heartbeat/"
# 3. Ish uchun soʻrov (smart kassa)
curl -H "Authorization: Bearer sit_pd_..." \
-H 'If-None-Match: "<last-etag>"' \
"https://<host>/api/payments/v1/devices/assignment/"
# 3b. …yoki mehmon nimani koʻrishi kerakligi uchun (mehmonga qaragan ekran)
curl -H "Authorization: Bearer sit_pd_..." \
"https://<host>/api/payments/v1/devices/display/"
# 4. Toʻlov ilovasi nima qaytarganini xabar qilish
curl -X POST -H "Authorization: Bearer sit_pd_..." \
-H 'Content-Type: application/json' \
-d '{"intent_id":42,"outcome":"reported_success",
"provider_reference":"RRN-000123","provider_code":"00",
"client_idempotency_key":"collection-42-1"}' \
"https://<host>/api/payments/v1/devices/assignment/report/"

4-qadam buyurtmani toʻlamaydi. Smart kassaga topshirish ga qarang.

Ikkala soʻrov oʻqishi ham If-None-Match ni qoʻllab-quvvatlaydi; oʻzgarmagan holat tanasiz 304 qaytaradi.

Chastotani siz emas, Sitora belgilaydi. Ikkala oʻqishning har bir javobi — 200 ham, 304 ham — keyingi soʻrovdan oldin necha soniya kutishni bir xil sonni olib yuruvchi ikkita sarlavhada aytadi:

X-Sitora-Poll-After: <soniya>
Retry-After: <soniya>

Shuncha kuting va yana soʻrang, qiymatni esa kodga qattiq yozmang: Sitora uni sizning relizingizsiz butun park boʻylab koʻtarishi mumkin — band kun shu tarzda qurilmalarni rad etish bilan emas, sekinlatish bilan hal qilinadi. Bugun ekran ikki soniya, hamroh esa uch soniya soʻraydi. Muvaffaqiyatli javobdagi Retry-After — bu surʼat, xato emas.

Chastota cheklovlari hisob maʼlumoti boʻyicha hisoblanadi va surʼat belgilash usuli emas, oxirgi chora hisoblanadi. Sarlavhaga quloq soladigan qurilma ularga yetib bormaydi.

Sertifikat sinov muhitida qoʻlga kiritiladi. Sitora u yerda soʻrov boʻyicha muvofiqlik toʻplamini yuritadi va toʻplam jonli APIʼda kassir, qurilma va filial egasi sifatida ish koʻradi. U jumladan quyidagilarni tekshiradi:

  • naqd va tasdiqlangan terminal orqali yigʻishning Sitoraning yagona toʻlov chokidan oʻtishi;
  • smart kassaga topshirish, jumladan xabar qilingan muvaffaqiyat kassir tasdigʻigacha buyurtmani toʻlanmagan holda qoldirishi;
  • takroriy xabarning idempotent qaytarilishi;
  • provayderning haqiqiy qaytarma chaqiruvi bilan tasdiqlangan dinamik QR toʻlovi va takroriy chaqiruvning aynan bir xil qaytarilishi;
  • provayder Sitora hech qachon roʻyxatga olmagan tranzaksiya boʻyicha daʼvo qilgan pulning jimgina biror narsani toʻlash oʻrniga solishtirilmagan pul muammosi sifatida chiqishi;
  • favqulodda oʻchirgichga rioya qilish, jumladan platforma muzlatilishi davomida naqd yigʻish davom etishi;
  • oflayn qurilmaning oʻz marshrutlarini olib tashlashi va heartbeatning ularni qaytarishi;
  • yuklangan provayder koʻchirmasiga solishtirish har bir farqqa nom berishi va yopilgan farq keyingi yurishda qaytmasligi.

Yurish orqasida hech nima qoldirmaydi: u kassa ijarasini boʻshatadi, oʻzi bergan qurilma hisob maʼlumotini bekor qiladi va oʻz ega sessiyasini yakunlaydi, shuning uchun toʻplamni bitta sinov muhitida xohlagancha qayta yuritish mumkin.

Qayd etilgan yurish ishlatilgan har bir imkoniyat uchun bitta oʻzgarmas sertifikat artefaktini yozadi. Sertifikat provayder × imkoniyat juftligi boʻyicha beriladi: bitta uskuna feʼli uchun oʻtish boshqasini hech qachon sertifikatlamaydi.