
Xodera Plugins · Bubble Native
Xodera QR Passes Native
Създавайте еднократни билети, потвърждения за получаване или купони. Персоналът сканира кода, проверява резултата, преглежда поръчката и потвърждава използването само когато е готов.
Public beta guides · Haptics instructions are in its Bubble listing
Public beta offer: free Bubble install · 7-day card trial, then US$1.50/month per plugin/project.
Документацията прегледана 6 ноември 2026
Практически примери
Еднократен вход за събитие в същия ден
Снимка на обикновена стойност QR може да бъде използвана отново на повече от един вход.
Вашето приложение съхранява запис за Admission и стабилно издаване `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` възстановете същата заявка с идентичен потребител/окръжение/пропуск; никога не създавайте нов идентификатор за потвърждение. Обработвайте expired, revoked и състоянията „already_used“ като различни резултати.
Планирано. Сканирането и проверката не използват пропуска; само изрично потвърждение го прави.
Осребете краткотрайна полза еднократно на партньорски щанд
Партньорът се нуждае от потвърден резултат използван/неизползван, вместо да се доверява на изображение QR или анимация на екрана.
`label=coupon`; записът Benefit на приложението определя правото и кратък период на валидност преди упълномощено действие за издаване.
Издайте пропуск само след проверка на правото от вашето приложение. На щанда Check QR pass показва наличност без да я консумира. След като служителят потвърди доставката на ползата, изпълнете Confirm QR redemption.
Вашият запис Benefit може да съхранява `receipt_id` и потвърденото време на осребряване след `status=redeemed`. Приставката управлява състоянието на пропуска; вашето приложение управлява ползата и връзката с клиента.
Ако ползата бъде анулирана преди употреба, същият упълномощен издавач може да Revoke QR pass, използвайки неговия `pass_id`. Не обявявайте възстановяване или успешно осребряване само от `ok=yes`.
Планирано. Сканирането и проверката не използват пропуска; само изрично потвърждение го прави.
Потвърдете същодневно получаване на оборудване или поръчка
Работният процес на персонала трябва да различава сканирането на референция за получаване от действителното предаване на артикул.
Записът Collection, собственост на вашето приложение, съхранява упълномощаване, предвидения артикул и отделни стабилни идентификатори за издаване/осребряване; използвайте краткотраен пропуск `label=access`.
След като вашето приложение разреши получаването, Issue QR pass. Персоналът сканира и проверява, инспектира съответната Collection във вашето приложение, след което изрично потвърждава предаването и Confirm QR redemption.
Само след потвърдена `redeemed` разписка вашият работен процес трябва да зададе Колекцията като предадена. Запазете `receipt_id` като връзка към резултата от преминаването.
Повторно сканиране може да върне already_used; покажете съществуващия запис в приложението вместо да предавате друг артикул. Възстановете несигурно потвърждение със същия идентификатор и входни данни.
Планирано. Сканирането и проверката не използват пропуска; само изрично потвърждение го прави.
Какво работи сега
Частна бета. Текущият скенер разполага с контрол на камерата и разрешенията. Създаването, проверката и потвърждаването на еднократни пропуски са планирани и все още не са готови за използване във вашето приложение.
Създайте работния процес
Планирано
Планиран работен процес. Все още не е наличен в текущата бета версия.
Тези примери използват записи на приложение като Lesson, Message и Order. Заменете ги със свои типове данни и имена на елементи. Примерните медийни адреси трябва да бъдат заменени със свои файлове.
Планирано: упълномощен служител използва Issue QR pass за вход или Order. Пример: label=event, ttl_seconds=900, environment=development. Запазете стабилен request_id за това издаване и съхранете pass_id със записа.
Покажете върнатия QR на предназначения му притежател. Персоналът го сканира. В работния процес за планиран пропуск използвайте workflow_mode=yes и прочетете scanned_pass_token след pass_scanned. Тези настройки на работния процес за пропуски не са налични в текущия скенер.
Стартирайте Check QR pass с pass_token = QR Scanner's scanned_pass_token. Той проверява без да използва пропуска. За status=available покажете съответната поръчка или детайли за вход, за да може персоналът да ги прегледа.
Само отделният бутон „Потвърждение“ стартира Confirm QR redemption със същия pass_token, стабилен request_id и confirm=yes. При status=redeemed запазете receipt_id и маркирайте поръчката или записа като завършен.
already_used, expired, revoked или invalid означават да не се допуска или предава поръчката. Само сканиране или успешна проверка никога не завършват транзакцията.
Конфигурирайте еднократно
Създайте или изберете вашия Bubble проект в BestPlugins → Dashboard → Plugins. Изберете Xodera QR Passes Native, копирайте неговия ключ, след това отворете Bubble → Plugins → Xodera QR Passes Native и поставете го в project_api_key. Запазете веднъж; след това използвайте действията по-долу. Всеки плъгин във всеки проект има свой собствен ключ.
Сканирането изисква разрешение за камера. За еднократни пропуски определете кой може да създава пропуски и кой може да ги проверява на входа или мястото за получаване. Обикновените клиенти не се нуждаят нито от една от ролите на персонала.
qr_issuer_permission_field
qr_pass_issuer · Име на полето тип да/не за потребител, което маркира служители, разрешени да създават или оттеглят пропуски. Пример/по подразбиране: qr_pass_issuer. Въведете тук името на полето, а не да или не. Само упълномощен администратор трябва да променя това разрешение за потребител.
qr_staff_permission_field
qr_staff · Име на полето тип да/не за потребител, което маркира персонал, разрешен да проверява и потвърждава използването. Пример/по подразбиране: qr_staff. Притежателят на билет не се нуждае от това разрешение. Дръжте го извън публичните форми за регистрация и профил.
Конфигурирайте еднократно
- Създайте или изберете вашия Bubble проект в BestPlugins → Dashboard → Plugins.
- Изберете този плъгин и копирайте неговия проектен ключ.
- Отворете Bubble → Plugins → Xodera QR Passes Native; поставете ключа в project_api_key и запазете.
- Добавете елемента, изберете вашите данни за приложението и изградете работния процес по-долу.
- Частен достъп до бета само за сега. Публичната инсталация и платеното активиране все още не са отворени.
Инсталиране и абонамент
For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.
Запазете резултата във вашето приложение
Пример за вход или получаване: запазете свързания поръчка/събитие, 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 - Пример Bubble израз
GuideHost's is_busy (your yes/no custom state) - Деактивирайте елемента, докато приложението е заето или това действие не е достъпно.
is_activeyes/no · По подразбиране: true- Примерна стойност
yes - Пример Bubble израз
GuideHost's view_is_active (your yes/no custom state) - Задайте да, докато този изглед е отворен. Задайте не при изход, за да може възпроизвеждането или текущата работа да спрат.
ui_text_jsontext · По подразбиране: "{}"- Примерна стойност
{} - Пример Bubble израз
App Settings' player_labels_json (supported keys only) - Опционален JSON с поддържани етикети за бутони. Оставете празно, за да се използва вграденият текст.
languagetext · По подразбиране: "auto"- Примерна стойност
uk - Пример Bubble израз
Current User's preferred_language - Задайте language=auto да следва поддържано устройство или език на браузъра. Въведете поддържан код на езика, за да го изберете изрично.
workflow_modeyes/no · По подразбиране: false- Примерна стойност
yes - Пример Bubble израз
App Settings' use_qr_business_actions - Планирано: позволете сканираната стойност QR да бъде използвана от Check QR pass. Само сканирането не потвърждава вход или получаване.
Действия и техните входове · 5
Планиран работен процес. Все още не е наличен в текущата бета версия.
Clear session
Няма параметри за действие
Issue QR pass
environmenttext · По подразбиране: "development"- Примерна стойност
development - Пример Bubble израз
App Settings' selected_environment - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
request_idtext · По подразбиране: —- Примерна стойност
pickup-123-issue-v1 - Пример Bubble израз
Current Admission's stable_request_id - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
labeltext · По подразбиране: "access"- Примерна стойност
event - Пример Bubble израз
Selected Admission's pass_label - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
ttl_secondsnumber · По подразбиране: 900- Примерна стойност
900 - Пример Bubble израз
Event Settings' pass_ttl_seconds - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Връщания
pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/noCheck QR pass
environmenttext · По подразбиране: "development"- Примерна стойност
development - Пример Bubble израз
App Settings' selected_environment - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
pass_tokentext · По подразбиране: —- Примерна стойност
<opaque token returned by Issue / camera scan> - Пример Bubble израз
QR Pass Scanner's scanned_pass_token (capture before Check) - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Връщания
pass_label · textexpires_at · textConfirm QR redemption
environmenttext · По подразбиране: "development"- Примерна стойност
development - Пример Bubble израз
App Settings' selected_environment - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
pass_tokentext · По подразбиране: —- Примерна стойност
<opaque token returned by Issue / camera scan> - Пример Bubble израз
QR Pass Scanner's scanned_pass_token (capture before Check) - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
request_idtext · По подразбиране: —- Примерна стойност
pickup-123-redeem-v1 - Пример Bubble израз
Current Admission's stable_redemption_request_id - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
confirmyes/no · По подразбиране: false- Примерна стойност
yes — explicit confirmation only - Пример Bubble израз
Confirm Checkbox is checked - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Връщания
pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/noRevoke QR pass
environmenttext · По подразбиране: "development"- Примерна стойност
development - Пример Bubble израз
App Settings' selected_environment - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
pass_idtext · По подразбиране: —- Примерна стойност
<pass_id returned by Issue> - Пример Bubble израз
Selected 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Идентификатор за този елемент или действие. Запазете го заедно със съответния запис в приложението. Използвайте същия идентификатор на заявката при повторен опит за несигурен резултат.
pass_label · textТекущата стойност за избрания елемент. Прочетете я след свързано събитие. empty,access,event,coupon,membership
receipt_id · textИдентификатор за този елемент или действие. Запазете го заедно със съответния запис в приложението. Използвайте същия идентификатор на заявката при повторен опит за несигурен резултат.
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Когато това събитие се случи, прочетете свързаните състояния от същия елемент.
Въпроси, които задават разработчиците
Какво означават двете настройки за разрешения?
Име на полето „Потребител“, тип да/не, което маркира служители, разрешени да създават или анулират пропуски. Пример/по подразбиране: qr_pass_issuer. Тук поставете името на полето, а не „да“ или „не“. Само упълномощен администратор трябва да променя това разрешение за потребител. Име на полето „Потребител“, тип да/не, което маркира персонал, разрешен да проверява и потвърждава използване. Пример/по подразбиране: qr_staff. Притежателят на билета не се нуждае от това разрешение. Дръжте го извън публичните форми за регистрация и профил.
Може ли същият служител да създава и проверява пропуски?
Да, ако упълномощен администратор даде на този служител и двете разрешения. Това не изисква друг проектен ключ. Клиентите обикновено не се нуждаят от нито едно от разрешенията. Не позволявайте на потребителите да си присвояват тези разрешения.
Защо се използва „Проверка“ след „Сканиране“?
Сканирането чете кода. Проверката пита дали пропускът е наличен без да го използва. Персоналът може първо да прегледа поръчката. Само отделното действие Confirm QR redemption използва пропуска веднъж.
Как работи абонаментът?
Планирани цени: инсталирането на плъгина в Bubble е безплатно. Достъпът до BestPlugins е отделен абонамент за всеки плъгин във всеки Bubble проект на приложение: 7 дни безплатно, след това US$1.50 на месец. Development и Live са включени. Няма фиксиран лимит за броя операции; ограниченията за размер на файлове и функции все още важат. Плащането все още не е отворено. Екранът за активиране ще покаже първата дата на фактуриране и условията за анулиране.
Свързани ръководства
Marketplace – предстоящо издание
Ръководството за форума не е публикувано
За помощ, кажете ни кой плъгин и устройство използвате, действието, което опитахте, и какво се случи. Използвайте пример без лични данни. Никога не споделяйте вашия ключ или частни файлове.