
Xodera Plugins · Bubble Native
Xodera QR Passes Native
Kreu unu-uzajn biletojn, kolektajn konfirmojn aŭ kuponojn. Personaro skanas la kodon, kontrolas la rezulton, antaŭrigardas la mendon kaj konfirmas uzon nur kiam pretas.
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.
Dokumentado reviziita 6 novembro 2026
Praktikaj ekzemploj
Unu-uzebla eniro por sama-taga evento
Ekrankopio de ordinara QR valoro povas alie esti reuzata ĉe pli ol unu enirejo.
Via aplikaĵo konservas registron Admission kaj stabilan eldonan `request_id`; uzu antaŭelektitan `label=event` kaj `ttl_seconds` ene de la kontrakta limo de 1–86400 sekundoj.
Aŭtorizita eldonanto plenumas Issue QR pass kaj private liveras la revenitan QR. Personaro skanas → Check QR pass → konfirmas nur se `ok=yes` kaj `status=available` → Confirm QR redemption kun konservita stabila peto-ID.
Nur `status=redeemed` kune kun `receipt_id` rajtigas vian aplikaĵon eligi enirkonfirmon. Konservu la referencon al la permesilo/konfirmo en Admission; ne sendu la QR-enhavon al analiziloj.
Por `outcome_unknown`, reakiru la saman peton kun identaj uzanto/medio/permesilo; neniam kreu novan konfirman ID. Traktu expired, revoked kaj jam uzitajn statojn kiel apartajn rezultojn.
Planita. Skanado kaj kontrolo ne konsumas la unufojan uzon de la permesilo; nur eksplicita konfirmo konsumas ĝin.
Elaĉetu mallongdaŭran avantaĝon unufoje ĉe la giĉeto de partnero
Partnero bezonas konfirmitan uzitan/neuzitan rezulton anstataŭ fidi QR bildon aŭ ekranan animacion.
`label=coupon`; la registro Benefit de la aplikaĵo difinas la kondiĉojn de elekteblo kaj mallongan validecperiodon antaŭ rajtigita eldona ago.
Eldonu permesilon nur post la elekteblo-kontrolo de via aplikaĵo. Ĉe la giĉeto, Check QR pass montras disponeblecon sen konsumi la permesilon. Post kiam la dungito konfirmas transdonon de la avantaĝo, rulu Confirm QR redemption.
Via registro Benefit povas konservi `receipt_id` kaj la konfirmitan tempon de elaĉeto post `status=redeemed`. La kromaĵo administras la staton de la permesilo; via aplikaĵo administras la avantaĝon kaj la rilaton kun la kliento.
Se avantaĝo estas nuligita antaŭ uzo, la sama aŭtorizita eldonanto povas Revoke QR pass uzante sian `pass_id`. Ne anoncu repagon aŭ sukcesan redempton nur de `ok=yes`.
Planita. Skanado kaj kontrolo ne konsumas la unufojan uzon de la permesilo; nur eksplicita konfirmo konsumas ĝin.
Konfirmu samtagan transprenon de ekipaĵo aŭ mendo
Personara laborfluo devas distingi inter skanado de referenco por transpreno kaj efektiva transdono de objekto.
La registro Collection, posedata de via aplikaĵo kaj uzata por transpreno de la objekto, konservas la rajtigon, la celitan objekton kaj apartajn stabilajn ID-ojn de eldonaj kaj elaĉetaj petoj; uzu mallongdaŭran permesilon `label=access`.
Post kiam via aplikaĵo rajtigas la transprenon, rulu Issue QR pass. La personaro skanas kaj uzas Check, inspektas la kongruan Collection en via aplikaĵo, poste eksplicite konfirmas la transdonon kaj rulas Confirm QR redemption.
Nur post ricevo de konfirmita kvitanco `redeemed` via laborfluo rajtas marki Collection kiel transdonitan. Konservu `receipt_id` kiel ligilon al la rezulto de la permesilo.
Ripeta skanado povas redoni already_used; montru la ekzistantan registron de la aplikaĵo anstataŭ transdoni alian objekton. Rekontrolu konfirmon kun necerta rezulto per la sama ID kaj la samaj enigoj.
Planita. Skanado kaj kontrolo ne konsumas la unufojan uzon de la permesilo; nur eksplicita konfirmo konsumas ĝin.
Kio funkcias nun
Privata beta. La nuna skanilo havas kameraon kaj permeskontrolojn. Krei, kontroli kaj konfirmi unu-uzajn pasojn estas planita kaj ankoraŭ ne pretas por uzo en via aplikaĵo.
Kreu la laborfluon
Planita
Planita laborfluo. Ankoraŭ ne disponebla en la nuna beta.
Ĉi tiuj ekzemploj uzas aplikaĵajn rekordojn kiel Lesson, Message kaj Order. Anstataŭigu ilin per viaj propraj datumtipoj kaj elementnomoj. Ekzemplaj aŭdvida adresoj devas esti anstataŭigitaj per viaj propraj dosieroj.
Planita: rajtigita dungito uzas Issue QR pass por registro Admission aŭ Order. Ekzemplo: label=event, ttl_seconds=900, environment=development. Konservu stabilan request_id por tiu eldono kaj konservu pass_id kun la registro.
Montru la revenitan QR al ĝia destinita posedanto. Personaro skanas ĝin. En la planita pasfluo, uzu workflow_mode=yes kaj legu scanned_pass_token post pass_scanned. Tiuj pasfluo-agordoj ne estas disponeblaj en la nuna skanilo.
Rulu Check QR pass kun pass_token = QR Scanner's scanned_pass_token. Ĝi kontrolas sen uzi la pason. Por status=available, montru la kongruan mendon aŭ enirajn detalojn por ke personaro povu revizii ilin.
Nur aparta butono Konfirmi rulas Confirm QR redemption kun la sama pass_token, stabila request_id kaj confirm=yes. Sur status=redeemed, konservu receipt_id kaj marku tiun mendon aŭ eniron kiel kompleta.
already_used, expired, revoked aŭ invalid signifas, ke vi ne rajtas enlasi la personon aŭ transdoni la mendon. Skanado aŭ sukcesa Check sola neniam finas la transakcion.
Agordu unufoje
Kreu aŭ elektu vian Bubble-aplikaĵan projekton en BestPlugins → Dashboard → Plugins. Elektu Xodera QR Passes Native, kopiu ĝian ŝlosilon, poste malfermu Bubble → Plugins → Xodera QR Passes Native kaj algluu ĝin en project_api_key. Konservu unufoje; poste uzu la subajn agojn. Ĉiu kromaĵo en ĉiu projekto havas sian propran ŝlosilon.
Skanado postulas permeson uzi la kameraon. Por unu-uzaj permesiloj, decidu kiu rajtas krei ilin kaj kiu rajtas kontroli ilin ĉe la enirejo aŭ loko de transpreno. Ordinaraj klientoj bezonas nek la rolon por krei permesilojn nek tiun por kontroli ilin.
qr_issuer_permission_field
qr_pass_issuer · Nomo de la yes/no-kampo en User, kiu markas dungitojn rajtigitajn krei aŭ revoki permesilojn. Ekzemplo/defaŭlto: qr_pass_issuer. Enmetu ĉi tie la kampnomon, ne yes aŭ no. Nur rajtigita administranto rajtas ŝanĝi tiun permeson ĉe uzanto.
qr_staff_permission_field
qr_staff · Nomo de la yes/no-kampo en User, kiu markas personaron rajtigitan kontroli kaj konfirmi uzon. Ekzemplo/defaŭlto: qr_staff. La posedanto de bileto ne bezonas ĉi tiun permeson. Ne inkluzivu ĝin en publikaj aliĝaj kaj profilaj formularoj.
Agordu unufoje
- Kreu aŭ elektu vian Bubble-aplikaĵan projekton ĉe BestPlugins → Dashboard → Plugins.
- Elektu ĉi tiun kromaĵon kaj kopiu ĝian projektan ŝlosilon.
- Malfermu Bubble → Plugins → Xodera QR Passes Native; algluu la ŝlosilon en project_api_key kaj konservu.
- Aldonu la elementon, elektu viajn aplikaĵajn datumojn kaj konstruu la suban laborfluon.
- Privata beta-aliro nur por nun. Publika instalado kaj paga aktivigo ankoraŭ ne estas disponeblaj.
Instalado kaj abono
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.
Konservu la rezulton en via aplikaĵo
Ekzemplo Admission aŭ Pickup: konservu la rilatan mendon/eventon, pass_id, expires_at kaj issue_request_id. Post konfirmita uzo, aldonu receipt_id, redeemed_at kaj la dungiton, kiu konfirmis. Ne marku la registron kiel finitan kiam la kodo estas nur skanita aŭ kontrolita. QR-kodo ne konfirmas la identecon de persono.
Malsukceso, nuligo kaj restaŭro
Se outcome_unknown=yes, retenu la saman pason, request_id kaj enigojn kiam vi kontrolas la rezulton denove. Ne kreu novan konfirmon. already_used, expired kaj revoked estas finaj komercaj rezultoj. Se permeso estas rifuzita, petu aŭtoritatan administranton revizii la rolon de la dungito. Clear session restarigas la skanilon; ĝi ne povas nuligi kompletan uzon.
Kapabloj kaj limoj
Planitaj pasoj estas unu-uzaj, kun vivdaŭro de 1–86400 sekundoj; defaŭlta 900. Pasotipoj: access, event, coupon kaj membership. Kontrolo ne rezervas pason. Interreta aliro estas postulata por uzo de pasoj. Neniu pagoprocezado, identeca kontrolo aŭ reuzebla longdaŭra membreca karto. Legi ordinaran QR-valoron estas aparta de kontrolo de pasoj.
Agordoj, agoj kaj rezultoj
Uzu ĉi tiujn nomojn en Bubble. Planitaj funkcioj estas markitaj aparte.
Disponeblaj beta-agordoj
Elementaj agordoj
disabled · yes/nois_active · yes/noui_text_json · textlanguage · textStatoj
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/noEventoj
scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_errorAgoj kaj iliaj enigoj
Clear sessionElementaj agordoj · 5
Planita laborfluo. Ankoraŭ ne disponebla en la nuna beta.
disabledyes/no · Defaŭlto: false- Ekzempla valoro
no - Ekzemplo Bubble esprimo
GuideHost's is_busy (your yes/no custom state) - Malebligu la elementon dum via aplikaĵo estas okupata aŭ ĉi tiu ago ne disponeblas.
is_activeyes/no · Defaŭlto: true- Ekzempla valoro
yes - Ekzemplo Bubble esprimo
GuideHost's view_is_active (your yes/no custom state) - Agordu jes dum ĉi tiu vido estas malfermita. Agordu ne kiam forlasas, por ke reproduktado aŭ nuna laboro povas ĉesi.
ui_text_jsontext · Defaŭlto: "{}"- Ekzempla valoro
{} - Ekzemplo Bubble esprimo
App Settings' player_labels_json (supported keys only) - Nedeviga JSON kun subtenataj butonetiketoj. Lasu malplena por uzi la enkonstruitan tekston.
languagetext · Defaŭlto: "auto"- Ekzempla valoro
uk - Ekzemplo Bubble esprimo
Current User's preferred_language - Agordu language=auto por sekvi subtenatan lingvon de la aparato aŭ retumilo. Enigu subtenatan lingvokodon por elekti ĝin eksplicite.
workflow_modeyes/no · Defaŭlto: false- Ekzempla valoro
yes - Ekzemplo Bubble esprimo
App Settings' use_qr_business_actions - Planita: permesi ke la skanitaj QR-valoro estu uzata de Check QR pass. Nur skanado ne konfirmas eniron aŭ preno.
Agoj kaj iliaj enigoj · 5
Planita laborfluo. Ankoraŭ ne disponebla en la nuna beta.
Clear session
Neniuj ago-parametroj
Issue QR pass
environmenttext · Defaŭlto: "development"- Ekzempla valoro
development - Ekzemplo Bubble esprimo
App Settings' selected_environment - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
request_idtext · Defaŭlto: —- Ekzempla valoro
pickup-123-issue-v1 - Ekzemplo Bubble esprimo
Current Admission's stable_request_id - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
labeltext · Defaŭlto: "access"- Ekzempla valoro
event - Ekzemplo Bubble esprimo
Selected Admission's pass_label - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
ttl_secondsnumber · Defaŭlto: 900- Ekzempla valoro
900 - Ekzemplo Bubble esprimo
Event Settings' pass_ttl_seconds - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Redonataj valoroj
pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/noCheck QR pass
environmenttext · Defaŭlto: "development"- Ekzempla valoro
development - Ekzemplo Bubble esprimo
App Settings' selected_environment - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
pass_tokentext · Defaŭlto: —- Ekzempla valoro
<opaque token returned by Issue / camera scan> - Ekzemplo Bubble esprimo
QR Pass Scanner's scanned_pass_token (capture before Check) - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Redonataj valoroj
pass_label · textexpires_at · textConfirm QR redemption
environmenttext · Defaŭlto: "development"- Ekzempla valoro
development - Ekzemplo Bubble esprimo
App Settings' selected_environment - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
pass_tokentext · Defaŭlto: —- Ekzempla valoro
<opaque token returned by Issue / camera scan> - Ekzemplo Bubble esprimo
QR Pass Scanner's scanned_pass_token (capture before Check) - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
request_idtext · Defaŭlto: —- Ekzempla valoro
pickup-123-redeem-v1 - Ekzemplo Bubble esprimo
Current Admission's stable_redemption_request_id - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
confirmyes/no · Defaŭlto: false- Ekzempla valoro
yes — explicit confirmation only - Ekzemplo Bubble esprimo
Confirm Checkbox is checked - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Redonataj valoroj
pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/noRevoke QR pass
environmenttext · Defaŭlto: "development"- Ekzempla valoro
development - Ekzemplo Bubble esprimo
App Settings' selected_environment - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
pass_idtext · Defaŭlto: —- Ekzempla valoro
<pass_id returned by Issue> - Ekzemplo Bubble esprimo
Selected Admission's pass_id - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Redonataj valoroj
pass_id · textrevoked · yes/noStatoj kaj eventoj
Planita laborfluo. Ankoraŭ ne disponebla en la nuna beta.
Statoj
scanner_status · textAktuala rezulto de ĉi tiu ago. Uzu la kongruan finigan eventon antaŭ ol konservi sukceson. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded
server_status · textAktuala rezulto de ĉi tiu ago. Uzu la kongruan finigan eventon antaŭ ol konservi sukceson. empty,available,redeemed,already_used,expired,revoked
pass_id · textIdentigilo por ĉi tiu elemento aŭ ago. Konservu ĝin kun la kongrua registro de la aplikaĵo. Uzu la saman petidentigilon kiam vi reprovas operacion kun necerta rezulto.
pass_label · textAktuala valoro por la elektita elemento. Legu ĝin post la rilata evento. empty,access,event,coupon,membership
receipt_id · textIdentigilo por ĉi tiu elemento aŭ ago. Konservu ĝin kun la kongrua registro de la aplikaĵo. Uzu la saman petidentigilon kiam vi reprovas operacion kun necerta rezulto.
error_code · textErarinformoj por la lasta ago. Montru utilan mesaĝon kaj proponu la rilatan reprovon.
is_busy · yes/noLaboro ankoraŭ progresas. Atendu antaŭ ol komenci alian agon.
is_scanning · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
torch_enabled · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
scan_source · textAktuala valoro por la elektita elemento. Legu ĝin post la rilata evento. empty,camera,fixture
pending_redemption · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
scanned_pass_token · textNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
Eventoj
scanner_startedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
scanner_pausedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
scanner_cancelledKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
permission_deniedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
pass_scannedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
validation_startedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
validation_completedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
redemption_startedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
pass_redeemedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
redemption_rejectedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
redemption_pendingKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
fixture_decodedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
qr_errorKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
Demandoj, kiujn programistoj demandas
Kion signifas la du permesagordoj?
Nomo de la yes/no-kampo en User, kiu markas dungitojn rajtigitajn krei aŭ revoki permesilojn. Ekzemplo/defaŭlto: qr_pass_issuer. Enmetu ĉi tie la kampnomon, ne yes aŭ no. Nur rajtigita administranto rajtas ŝanĝi tiun permeson ĉe uzanto. Nomo de la yes/no-kampo en User, kiu markas personaron rajtigitan kontroli kaj konfirmi uzon. Ekzemplo/defaŭlto: qr_staff. La posedanto de bileto ne bezonas ĉi tiun permeson. Ne inkluzivu ĝin en publikaj aliĝaj kaj profilaj formularoj.
Ĉu la sama dungito povas krei kaj kontroli pasojn?
Jes, se rajtigita administranto donas al tiu dungito ambaŭ permesojn. Tio ne postulas alian projektan ŝlosilon. Klientoj normale bezonas nek unu nek la alian permeson. Ne lasu uzantojn atribui ĉi tiujn permesojn al si mem.
Kial uzi Kontrolon post Skanado?
Skano legas la kodon. Kontrolo demandas ĉu la permesilo estas disponebla sen uzi ĝin. Personaro povas revizii la mendon unue. Nur la aparta Confirm QR redemption ago uzas la permesilon unufoje.
Kiel funkcias la abono?
Planita prezo: instalado de la kromaĵo en Bubble estas senpaga. Aliro al BestPlugins estas aparta abono por ĉiu kromaĵo en ĉiu Bubble aplikaĵprojekto: 7 tagoj senpage, poste US$1.50 monate. Development kaj Live estas inkluzivitaj. Ne ekzistas fiksita limo pri la nombro da operacioj; limoj pri dosiergrando kaj funkcioj ankoraŭ validas. Pagado ankoraŭ ne estas malfermita. La aktiviga ekrano montros la unuan fakturdaton kaj nuligajn kondiĉojn.
Rilataj gvidiloj
Marketplace eldono atendanta
Forumgvidilo ne afiŝita
Por helpo, informu nin kiun kromaĵon kaj aparaton vi uzas, la agon kiun vi provis kaj kio okazis. Uzu ekzemplon sen personaj datumoj. Neniam dividu vian ŝlosilon aŭ privatajn dosierojn.