Интерфејс на QR-скенер. Акциите за еднократни пропусници се планирани.
Интерфејс на QR-скенер. Акциите за еднократни пропусници се планирани.
← Сите водичи за Bubble Native

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 со складиран стабилен ID на барање.

Само `status=redeemed` заедно со `receipt_id` ѝ дозволува на вашата апликација да издаде потврда за влез. Зачувајте ја референцата за пропусницата/потврдата во Admission; не испраќајте ја содржината на QR-кодот во аналитика.

За `outcome_unknown`, вратете го истото барање со истиот корисник, околина и пропусница; никогаш не создавајте нов ID за потврда. Третирајте ги expired, revoked и веќе искористената состојба како различни исходи.

Планирано. Скенирањето и проверката не ја трошат еднократната пропусница; таа се искористува само со експлицитна потврда.

Искористете краткотраен бенефит еднаш на шалтерот на партнерот

Партнерот треба потврдени резултати употребено/неупотребено наместо да се доверува на слика QR или анимација на екранот.

`label=coupon`; записот Benefit во апликацијата ја утврдува подобноста и краткиот период на важност пред овластената акција за издавање.

Издајте пропусница само по проверката на подобноста во вашата апликација. На шалтерот, Check QR pass ја покажува достапноста без да ја потроши пропусницата. Откако членот на персоналот ќе потврди дека бенефитот е предаден, извршете Confirm QR redemption.

Вашиот запис Benefit може да ги зачува `receipt_id` и потврденото време на искористување по `status=redeemed`. Приклучокот управува со состојбата на пропусницата; вашата апликација управува со бенефитот и односот со клиентот.

Ако бенефитот се откаже пред употреба, истиот авторизиран издавач може да Revoke QR pass користејќи го `pass_id`. Не објавувајте поврат или успешно искористување само од `ok=yes`.

Планирано. Скенирањето и проверката не ја трошат еднократната пропусница; таа се искористува само со експлицитна потврда.

Потврдете истодневно подигнување на опрема или нарачка

Работниот процес на персоналот треба да разликува скенирање референца за подигнување од вистинско предавање на предметот.

Записот Collection, кој е во сопственост на вашата апликација и служи за подигнување на предметот, ги чува овластувањето, наменетиот предмет и одделните стабилни ID-ја на барањата за издавање/искористување; користете краткотрајна пропусница `label=access`.

Откако вашата апликација ќе го одобри подигнувањето, користете Issue QR pass. Персоналот скенира и прави Check, го прегледува соодветниот Collection во вашата апликација, потоа експлицитно го потврдува предавањето и извршува Confirm QR redemption.

Само по потврдена потврда `redeemed`, вашиот работен процес треба да го означи Collection како предаден. Зачувајте `receipt_id` како врска до исходот на пропусницата.

Повторно скенирање може да врати already_used; прикажете постоечкиот запис во апликацијата наместо да предавате друг предмет. Вратете несигурна потврда со истиот ID и влезни податоци.

Планирано. Скенирањето и проверката не ја трошат еднократната пропусница; таа се искористува само со експлицитна потврда.

Што работи сега

Приватна бета. Тековниот скенер има контроли за камера и дозволи. Создавањето, проверката и потврдата на еднократни пропусници се планирани и сè уште не се спремни за употреба во вашата апликација.

Создајте го работниот процес

Планирано

Планиран работен тек. Сè уште не е достапен во тековната бета верзија.

Овие примери користат записи на апликации како 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 никогаш не ја завршува трансакцијата.

Дијаграма на работен тек — не е снимка од апликацијата

Конфигурирајте еднаш

Создајте или изберете го вашиот Bubble апликациски проект во BestPlugins → Dashboard → Plugins. Изберете Xodera QR Passes Native, копирајте го неговиот клуч, потоа отворете Bubble → Plugins → Xodera QR Passes Native и вметнете го во project_api_key. Снимете еднаш; потоа користете ги акциите подолу. Секој додаток во секој проект има свој клуч.

За скенирање е потребна дозвола за камера. За еднократните пропусници одредете кој смее да ги создава и кој смее да ги проверува на влезот или местото за подигнување. На обичните клиенти не им е потребна ниту едната ниту другата улога на персоналот.

qr_issuer_permission_field

qr_pass_issuer · Име на полето yes/no во User што ги означува вработените со дозвола да создаваат или отповикуваат пропусници. Пример/стандардно: qr_pass_issuer. Тука внесете го името на полето, а не yes или no. Само овластен администратор треба да ја менува таа дозвола на корисникот.

qr_staff_permission_field

qr_staff · Име на полето yes/no во User што го означува персоналот со дозвола да проверува и потврдува употреба. Пример/стандардно: qr_staff. На сопственикот на билетот не му е потребна оваа дозвола. Не вклучувајте го ова поле во јавните формулари за регистрација и профил.

Конфигурирајте еднаш
  1. Создајте или изберете го вашиот Bubble апликациски проект на BestPlugins → Dashboard → Plugins.
  2. Изберете го овој додаток и копирајте го неговиот клуч за проект.
  3. Отворете Bubble → Plugins → Xodera QR Passes Native; вметнете го клучот во project_api_key и снимете.
  4. Додадете го елементот, изберете ги вашите податоци за апликацијата и изградете го работниот тек подолу.
  5. Приватен бета пристап само засега. Јавната инсталација и платената активација сè уште не се отворени.
Инсталација и претплата

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.

Зачувајте го резултатот во вашата апликација

Пример 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
Пример 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/no
Check 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 · text
Confirm 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/no
Revoke 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

Кога се случи овој настан, прочитајте ги поврзаните состојби од истиот елемент.

Прашања што ги поставуваат развивачите

Што значат двете поставки за дозвола?

Име на полето yes/no во User што ги означува вработените со дозвола да создаваат или отповикуваат пропусници. Пример/стандардно: qr_pass_issuer. Тука внесете го името на полето, а не yes или no. Само овластен администратор треба да ја менува таа дозвола на корисникот. Име на полето yes/no во User што го означува персоналот со дозвола да проверува и потврдува употреба. Пример/стандардно: qr_staff. На сопственикот на билетот не му е потребна оваа дозвола. Не вклучувајте го ова поле во јавните формулари за регистрација и профил.

Може ли истиот вработен да создава и проверува пасови?

Да, ако овластен администратор му даде на тој вработен двете дозволи. Ова не бара друг клуч за проект. Користниците обично не им треба ниту една од дозволите. Не им дозволувајте на корисниците да си ги доделат овие дозволи.

Зошто да се користи Проверка по Скенирање?

Скенирањето чита кодот. Проверката прашува дали пасот е достапен без да се користи. Персоналот може прво да ја прегледа нарачката. Само одделната акција Confirm QR redemption го користи пасот еднаш.

Како функционира претплатата?

Планирана цена: инсталирањето на приклучокот во Bubble е бесплатно. Пристапот до BestPlugins е посебна претплата за секој приклучок во секој Bubble проект на апликација: 7 дена бесплатно, потоа US$1.50 месечно. Development и Live се вклучени. Нема фиксно ограничување на бројот на операции; ограничувањата за големина на датотеката и функции сè уште важат. Плаќањето сè уште не е отворено. Екранот за активирање ќе прикаже првиот датум на наплата и условите за откажување.

Поврзани упатства

Marketplace издание во исчекување

Водичот за форум не е објавен

За помош, кажете ни кој приклучок и уред користите, која акција ја испробавте и што се случи. Користете пример без лични податоци. Никогаш не споделувајте го вашиот клуч или приватни датотеки.