Інтерфейс сканера QR. Дії одноразового пропуску заплановано.
Інтерфейс сканера QR. Дії одноразового пропуску заплановано.
← Усі оригінальні посібники

Xodera Plugins · Bubble Native

Xodera QR Passes Native

Створюйте одноразові квитки, підтвердження видачі або купони. Працівник сканує код, перевіряє результат, переглядає замовлення й окремо підтверджує використання.

Посібники публічних бета-версій · інструкції Haptics у його картці Bubble

Умови публічної бета-версії: Bubble безкоштовно · 7 днів з карткою, потім 1,50 USD/місяць за плагін у проєкті.

Документація переглянута 6 листопада 2026

Практичні сценарії

Одноразовий вхід на подію сьогодні

Скріншот звичайного значення QR можна використати в більш ніж одному вході.

Ваш додаток зберігає запис допуску та стабільний випуск `request_id`; використовуйте підготовлені `label=event` та `ttl_seconds` у межах контракту тривалістю 1–86400 секунд.

Авторизований видавець запускає Issue QR pass і конфіденційно передає повернений QR. Персонал сканує → Check QR pass → підтверджує лише якщо `ok=yes` і `status=available` → Confirm QR redemption зі збереженим стабільним ідентифікатором запиту.

Лише `status=redeemed` плюс `receipt_id` авторизують ваш квиток прийому в додатку. Збережіть посилання на пропуск/квиток у Admission; не розкривайте вміст QR аналітиці.

Для `outcome_unknown` відновіть той самий запит із тим самим користувачем, середовищем і тією самою QR-перепусткою; ніколи не створюйте новий ідентифікатор підтвердження. Обробляйте стани expired і revoked та випадок, коли перепустку вже використано, як окремі результати.

Заплановано. Сканування й перевірка не використовують перепустку; це робить лише окреме підтвердження.

Одноразова короткочасна знижка

Партнер потребує підтвердженого результату використано/не використано замість довіри до зображення QR або анімації екрану.

`label=coupon`; запис Benefit у додатку визначає право на отримання та коротке вікно дії перед авторизованою дією видачі.

Видавайте пропуск лише після перевірки правомірності вашого застосунка. На касі Check QR pass показує доступність без її використання. Після того, як співробітник підтвердить доставку вигоди, запустіть Confirm QR redemption.

Ваш запис вигоди може зберігати `receipt_id` та підтверджений час викупу після `status=redeemed`. Плагін керує станом пропуску; ваш додаток керує вигодою та взаємовідносинами з клієнтами.

Якщо вигода скасована до використання, той самий уповноважений емітент може Revoke QR pass, використовуючи його `pass_id`. Не оголошуйте про повернення коштів або успішний викуп лише на підставі `ok=yes`.

Заплановано. Сканування й перевірка не використовують перепустку; це робить лише окреме підтвердження.

Отримання замовлення чи обладнання

У робочому процесі персоналу потрібно розрізняти сканування посилання на колекцію та фактичну передачу предмета.

Запис вашої власної колекції в застосунку зберігає авторизацію, призначений елемент та окремі стабільні ідентифікатори запитів на випуск/погашення; використовуйте короткоживучий пропуск `label=access`.

Після того, як ваш застосунок авторизує колекцію, Issue QR pass. Співробітники сканують і перевіряють, оглядають відповідну колекцію у вашому застосунку, потім явно підтверджують передачу та Confirm QR redemption.

Лише після підтвердженого квитанції `redeemed` ваш робочий процес повинен встановити статус колекції як переданий. Залиште `receipt_id` як посилання на результат пропуску.

Повторне сканування може повернути already_used; відобразіть існуючий запис у додатку замість передачі іншого предмета. Відновіть невизначене підтвердження з тим же ідентифікатором та вхідними даними.

Заплановано. Сканування й перевірка не використовують перепустку; це робить лише окреме підтвердження.

Що працює зараз

Приватна бета. Поточний сканер має керування камерою й дозволами. Створення, перевірка та підтвердження одноразових перепусток заплановані й ще не готові до використання у вашому застосунку.

Побудуйте бізнес-процес

Заплановано

Запланований процес. Ще не доступний у поточній бета-версії.

У прикладах є записи Lesson, Message та Order. Замініть їх на власні типи даних і назви елементів. Замість адрес із прикладів підставте власні файли.

  1. Заплановано: уповноважений працівник виконує Issue QR pass для Admission або Order. Приклад: label=event, ttl_seconds=900, environment=development. Залишайте сталий request_id для цього створення й запишіть pass_id разом із замовленням або квитком.

  2. Покажіть отриманий QR його власнику. Працівник сканує його. У запланованому процесі перепусток потрібні workflow_mode=yes і читання scanned_pass_token після pass_scanned. У поточному сканері цих налаштувань ще немає.

  3. Виконайте Check QR pass з pass_token = QR Scanner's scanned_pass_token. Перевірка не використовує перепустку. Якщо status=available, покажіть деталі відповідного замовлення або входу для перевірки працівником.

  4. Лише окрема кнопка «Підтвердити» виконує Confirm QR redemption з тим самим pass_token, сталим request_id і confirm=yes. На status=redeemed збережіть receipt_id та позначте саме це замовлення або вхід завершеним.

  5. already_used, expired, revoked або invalid означають відмову у вході чи видачі. Саме сканування або успішна перевірка Check не завершують операцію.

Діаграма робочого процесу — не скріншот додатку · SVG

Налаштуйте один раз

Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins. Оберіть Xodera QR Passes Native, скопіюйте його ключ, відкрийте Bubble → Plugins → Xodera QR Passes Native і вставте ключ у project_api_key. Збережіть один раз, далі використовуйте дії нижче. Для кожного плагіна в кожному проєкті є окремий ключ.

Для сканування потрібен дозвіл на камеру. Для одноразових перепусток визначте, хто може їх створювати, а хто перевіряє на вході чи під час видачі. Звичайному клієнту ці ролі не потрібні.

qr_issuer_permission_field

qr_pass_issuer · Назва поля User типу yes/no, яке позначає працівника з правом створювати або скасовувати перепустки. Приклад і типове значення: qr_pass_issuer. Тут потрібна назва поля, а не yes чи no. Змінювати цей дозвіл користувача може лише уповноважений адміністратор.

qr_staff_permission_field

qr_staff · Назва поля User типу yes/no, яке позначає працівника з правом перевіряти й підтверджувати використання. Приклад і типове значення: qr_staff. Власнику квитка цей дозвіл не потрібен. Не додавайте його до публічної реєстрації або профілю.

Налаштуйте один раз
  1. Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins.
  2. Оберіть цей плагін і скопіюйте ключ його проєкту.
  3. Відкрийте Bubble → Plugins → Xodera QR Passes Native; вставте ключ у project_api_key і збережіть.
  4. Додайте елемент, оберіть дані свого застосунку та побудуйте workflow нижче.
  5. Наразі лише приватна бета. Публічне встановлення та платна активація ще не відкриті.
Встановлення та підписка

Для Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit та Haptics: безкоштовне встановлення в Bubble, 7 днів пробного доступу з карткою, потім 1,50 USD на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.

Як записати результат у свою базу

Приклад Admission або Pickup: збережіть відповідне замовлення чи подію, pass_id, expires_at та issue_request_id. Після підтвердженого використання додайте receipt_id, redeemed_at і працівника, який підтвердив. Не завершуйте запис лише після сканування або перевірки. QR-код не встановлює особу.

Помилки, скасування та відновлення

Якщо outcome_unknown=yes, збережіть ту саму перепустку, request_id і параметри, коли перевіряєте результат повторно. Не створюйте нове підтвердження. already_used, expired і revoked — завершені бізнес-результати. Якщо доступ відхилено, попросіть уповноваженого адміністратора перевірити роль працівника. Clear session очищує сканер, але не скасовує завершене використання.

Можливості й обмеження

Заплановані перепустки одноразові, зі строком дії 1–86400 секунд; стандартне значення — 900. Типи перепусток: access, event, coupon і membership. Перевірка не резервує перепустку. Для використання перепустки потрібне інтернет-з’єднання. Обробка платежів, перевірка особи та багаторазова довгострокова членська картка не передбачені. Зчитування звичайного значення QR — окрема дія від перевірки перепустки.

Налаштування, дії та результати

Використовуйте ці назви в Bubble. Плановані функції позначені окремо.

Доступні бета‑налаштування

Налаштування елемента

disabled · yes/nois_active · yes/noui_text_json · textlanguage · text

Стани

scanner_status · textserver_status · textpass_id · textpass_label · textreceipt_id · texterror_code · textis_busy · yes/nois_scanning · yes/notorch_enabled · yes/noscan_source · textpending_redemption · yes/no

Події

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

Дії та їхні параметри

Clear session
Налаштування елемента · 5

Запланований процес. Ще не доступний у поточній бета-версії.

disabledyes/no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleGuideHost's is_busy (your yes/no custom state)
Вимкніть елемент, коли застосунок зайнятий або дія недоступна.
is_activeyes/no · Типове значення: true
Приклад значенняyes
Приклад виразу BubbleGuideHost's view_is_active (your yes/no custom state)
yes, доки ця сторінка відкрита; no під час виходу, щоб зупинити відтворення чи поточну дію.
ui_text_jsontext · Типове значення: "{}"
Приклад значення{}
Приклад виразу BubbleApp Settings' player_labels_json (supported keys only)
Необов’язковий JSON із підтримуваними підписами кнопок. Залиште порожнім для вбудованих текстів.
languagetext · Типове значення: "auto"
Приклад значенняuk
Приклад виразу BubbleCurrent User's preferred_language
Укажіть language=auto, щоб автоматично використати підтримувану мову пристрою або браузера. Щоб обрати мову явно, укажіть підтримуваний код мови.
workflow_modeyes/no · Типове значення: false
Приклад значенняyes
Приклад виразу BubbleApp Settings' use_qr_business_actions
Заплановано: передати відскановане QR-значення в Check QR pass. Саме сканування не підтверджує вхід або видачу.
Дії та їхні параметри · 5

Запланований процес. Ще не доступний у поточній бета-версії.

Clear session

Немає параметрів дії

Issue QR pass
environmenttext · Типове значення: "development"
Приклад значенняdevelopment
Приклад виразу BubbleApp Settings' selected_environment
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
request_idtext · Типове значення: —
Приклад значенняpickup-123-issue-v1
Приклад виразу BubbleCurrent Admission's stable_request_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
labeltext · Типове значення: "access"
Приклад значенняevent
Приклад виразу BubbleSelected Admission's pass_label
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
ttl_secondsnumber · Типове значення: 900
Приклад значення900
Приклад виразу BubbleEvent Settings' pass_ttl_seconds
Візьміть значення поточного бізнес-запису й перевірте межі нижче.

Повернення

pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/no
Check QR pass
environmenttext · Типове значення: "development"
Приклад значенняdevelopment
Приклад виразу BubbleApp Settings' selected_environment
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
pass_tokentext · Типове значення: —
Приклад значення<opaque token returned by Issue / camera scan>
Приклад виразу BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Візьміть значення поточного бізнес-запису й перевірте межі нижче.

Повернення

pass_label · textexpires_at · text
Confirm QR redemption
environmenttext · Типове значення: "development"
Приклад значенняdevelopment
Приклад виразу BubbleApp Settings' selected_environment
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
pass_tokentext · Типове значення: —
Приклад значення<opaque token returned by Issue / camera scan>
Приклад виразу BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
request_idtext · Типове значення: —
Приклад значенняpickup-123-redeem-v1
Приклад виразу BubbleCurrent Admission's stable_redemption_request_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
confirmyes/no · Типове значення: false
Приклад значенняyes — explicit confirmation only
Приклад виразу BubbleConfirm Checkbox is checked
Візьміть значення поточного бізнес-запису й перевірте межі нижче.

Повернення

pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/no
Revoke QR pass
environmenttext · Типове значення: "development"
Приклад значенняdevelopment
Приклад виразу BubbleApp Settings' selected_environment
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
pass_idtext · Типове значення: —
Приклад значення<pass_id returned by Issue>
Приклад виразу BubbleSelected Admission's pass_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.

Повернення

pass_id · textrevoked · yes/no
Стани та події

Запланований процес. Ще не доступний у поточній бета-версії.

Стани

scanner_status · text

Поточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded

server_status · text

Поточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Ідентифікатор цього елемента або дії. Зберігайте його разом із відповідним записом. Для повтору з невідомим результатом використовуйте той самий ID запиту.

pass_label · text

Поточне значення для вибраного елемента. Зчитуйте його після відповідної події. empty,access,event,coupon,membership

receipt_id · text

Ідентифікатор цього елемента або дії. Зберігайте його разом із відповідним записом. Для повтору з невідомим результатом використовуйте той самий ID запиту.

error_code · text

Помилка останньої дії. Покажіть зрозуміле повідомлення й запропонуйте відповідний повтор.

is_busy · yes/no

Дія ще триває. Дочекайтеся завершення перед іншою дією.

is_scanning · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

torch_enabled · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

scan_source · text

Поточне значення вибраного елемента. Читайте його після відповідної події. empty,camera,fixture

pending_redemption · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

scanned_pass_token · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

Події

scanner_started

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

scanner_paused

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

scanner_cancelled

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

permission_denied

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

pass_scanned

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

validation_started

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

validation_completed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

redemption_started

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

pass_redeemed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

redemption_rejected

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

redemption_pending

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

fixture_decoded

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

qr_error

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

Відповіді для розробника

Для чого два налаштування дозволів?

Назва поля User типу yes/no, яке позначає працівника з правом створювати або скасовувати перепустки. Приклад і типове значення: qr_pass_issuer. Тут потрібна назва поля, а не yes чи no. Змінювати цей дозвіл користувача може лише уповноважений адміністратор. Назва поля User типу yes/no, яке позначає працівника з правом перевіряти й підтверджувати використання. Приклад і типове значення: qr_staff. Власнику квитка цей дозвіл не потрібен. Не додавайте його до публічної реєстрації або профілю.

Чи може один працівник створювати й перевіряти перепустки?

Так, якщо уповноважений адміністратор надасть обидва дозволи. Додатковий ключ проєкту не потрібен. Клієнтам зазвичай не потрібен жоден із цих дозволів. Не дозволяйте користувачам призначати їх собі.

Навіщо Check після скану?

Scan читає код. Check перевіряє доступність перепустки, не використовуючи її. Працівник спочатку може переглянути замовлення. Лише окрема дія Confirm QR redemption використовує перепустку один раз.

Як працює підписка?

Заплановане ціноутворення: встановлення плагіна в Bubble безкоштовне. Доступ до BestPlugins — окрема підписка для кожного плагіна в кожному проекті додатку Bubble: 7 днів безкоштовно, потім US$1.50 на місяць. Development і Live включені. Фіксованого обмеження кількості операцій немає; обмеження розміру файлу та функцій залишаються діючими. Оформлення ще не відкрито. На екрані активації буде показана дата першого платежу та умови скасування.

Інші приклади вигляду
Xodera QR Passes Native — Попередній приклад продукту; вигляд поточної бета-версії може відрізнятися.
Попередній приклад продукту; вигляд поточної бета-версії може відрізнятися.

Пов’язані інструкції

Marketplace випуск у черзі

Посібник форуму не опубліковано

Для допомоги вкажіть плагін, пристрій, дію та результат. Використовуйте приклад без персональних даних. Не надсилайте ключ або приватні файли.