
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. Супрацоўнікі скануюць і правяраюць, інспектуюць адпаведную калекцыю ў вашай праграме, затым яўна пацвярджаюць перадачу і Confirm QR redemption.
Толькі пасля атрымання пацверджання `redeemed` ваш працоўны працэс павінен пазначыць Collection як перададзеную. Захоўвайце `receipt_id` як спасылку на вынік выкарыстання пропуску.
Паўторнае сканаванне можа вярнуць already_used; адлюструйце існуючы запіс праграмы замест перадачы іншага прадмета. Аднавіце няпэўнае пацверджанне з тым жа ID і ўводамі.
Плануецца. Сканаванне і праверка не пагашаюць пропуск; толькі яўнае пацвярджэнне пагашае яго.
Што працуе зараз
Приватная бэта. Бягучы сканер мае кіраванне камерай і дазволамі. Стварэнне, праверка і пацвярджэнне аднаразовых праходаў запланаваны і яшчэ не гатовыя да выкарыстання ў вашым прыкладанні.
Стварыце працоўны паток
Запланавана
Запланаваны працэс. Пакуль недаступна ў бягучай бэта-версіі.
Гэтыя прыклады выкарыстоўваюць запісы прыкладання, такія як 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 выпуск у чаканні
Кіраўніцтва форума не апублікавана
Для дапамогі паведаміце, які плагін і прыладу вы выкарыстоўваеце, якую дзею спрабавалі і што адбылося. Выкарыстоўвайце прыклад без асабістых даных. Ніколі не дзяліцеся вашым ключом або прыватнымі файламі.