Interfície d'escàner QR. Les accions de pass únic estan planificades.
Interfície d'escàner QR. Les accions de pass únic estan planificades.
← Totes les guies natives

Xodera Plugins · Bubble Native

Xodera QR Passes Native

Creeu tiquets d’ús únic, confirmacions de recollida o cupons. El personal escaneja el codi, comprova el resultat, previsualitza la comanda i confirma l’ús només quan estigui preparat.

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.

Documentació revisada 6 novembre 2026

Exemples pràctics

Admissió d'un sol ús per a un esdeveniment del mateix dia

Una captura de pantalla d'un valor QR ordinari es pot reutilitzar a més d'una entrada.

La vostra aplicació emmagatzema un registre d'Admission i un `request_id` estable per a l’emissió; utilitzeu `label=event` curat i un `ttl_seconds` dins del contracte d’1–86400 segons.

Un emissor autoritzat executa Issue QR pass i entrega privadament el QR retornat. El personal escaneja → Check QR pass → confirma només si `ok=yes` i `status=available` → Confirm QR redemption amb un ID de sol·licitud estable emmagatzemat.

Només `status=redeemed` més `receipt_id` autoritza el rebut d'admissió de la vostra aplicació. Emmagatzemeu la referència del pass/rebut a l'Admission; no exposeu el contingut de QR a l'analítica.

Per a `outcome_unknown`, recupereu la mateixa sol·licitud amb usuari/entorn/pass idèntics; mai genereu un nou ID de confirmació. Gestioneu expired, revoked i els estats ja utilitzats com a resultats diferents.

Planificat. Escanejar i comprovar no consumeixen el pass; només la confirmació explícita ho fa.

Redimir un benefici de curta durada una vegada al mostrador d'un soci

Un soci necessita un resultat confirmat d'utilitzat/no utilitzat en lloc de confiar en una imatge QR o una animació de pantalla.

`label=coupon`; el registre de Benefit de l'aplicació defineix l'elegibilitat i una finestra de validesa curta abans d'una acció d'emissió autoritzada.

Emeteu un pass només després de la comprovació d'elegibilitat de la vostra aplicació. Al mostrador, Check QR pass mostra disponibilitat sense consumir-lo. Un cop el membre del personal confirma la entrega del benefici, executeu Confirm QR redemption.

El vostre registre de Benefit pot emmagatzemar `receipt_id` i l'hora de redempció confirmada després de `status=redeemed`. El connector gestiona l'estat del pass; la vostra aplicació gestiona el benefici i la relació amb el client.

Si un benefici es cancel·la abans de l'ús, el mateix emissor autoritzat pot Revoke QR pass utilitzant el seu `pass_id`. No anuncieu un reemborsament o una redempció exitosa només a partir de `ok=yes`.

Planificat. Escanejar i comprovar no consumeixen el pass; només la confirmació explícita ho fa.

Confirmar la recollida d'equipament o comanda el mateix dia

Un flux de treball del personal necessita distingir l'escaneig d'una referència de recollida de la entrega real d'un article.

El registre de Collection propietat de la vostra aplicació conserva l'autorització, l'element previst i IDs de sol·licitud d'emissió/redempció estables separats; utilitzeu un pass `label=access` de curta durada.

Després que la vostra aplicació autoritzi la recollida, Issue QR pass. El personal escaneja i comprova, inspecciona la col·lecció coincident a la vostra aplicació, i després confirma explícitament la entrega i Confirm QR redemption.

Només després d'un rebut `redeemed` confirmat el vostre flux de treball ha d'establir la col·lecció com a entregada. Mantingueu `receipt_id` com a enllaç al resultat del pass.

Un escaneig repetit pot retornar already_used; mostreu el registre existent de l'aplicació en lloc d'entregar un altre article. Recupereu una confirmació incerta amb el mateix ID i entrades.

Planificat. Escanejar i comprovar no consumeixen el pass; només la confirmació explícita ho fa.

Què funciona ara

Beta privada. L’escàner actual disposa de controls de càmera i permisos. La creació, comprovació i confirmació de passis d’ús únic està planificada i encara no està disponible per al vostre aplicació.

Crea el flux de treball

Planificat

Flux de treball planificat. No disponible a la beta actual.

Aquests exemples utilitzen registres d'aplicació com Lesson, Message i Order. Substituïu-los amb els vostres propis tipus de dades i noms d'elements. Les adreces multimèdia d'exemple s'han de substituir per els vostres propis fitxers.

  1. Planificat: un empleat autoritzat utilitza Issue QR pass per a una Admissió o Order. Exemple: label=event, ttl_seconds=900, environment=development. Mantén un request_id estable per a aquesta emissió i desa pass_id amb el registre.

  2. Mostra el QR retornat al seu destinatari previst. El personal l'escaneja. En el flux de treball del pass planificat, utilitza workflow_mode=yes i llegeix scanned_pass_token després de pass_scanned. Aquesta configuració del flux de pass no està disponible a l'escàner actual.

  3. Executa Check QR pass amb pass_token = QR Scanner's scanned_pass_token. Comprova sense consumir el pass. Per a status=available, mostra la comanda o els detalls d'entrada coincidents perquè el personal els revisi.

  4. Només un botó Confirm separat executa Confirm QR redemption amb el mateix pass_token, un request_id estable i confirm=yes. En status=redeemed, desa receipt_id i marca aquesta comanda o entrada com a completa.

  5. already_used, expired, revoked o invalid vol dir no admetre ni lliurar la comanda. Un escaneig o una comprovació exitosa per si sola mai completa la transacció.

Diagrama de flux de treball — no és una captura de pantalla de l'aplicació

Configura una vegada

Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins. Trieu Xodera QR Passes Native, copieu la seva clau i, a continuació, obriu Bubble → Plugins → Xodera QR Passes Native i enganxeu‑la a project_api_key. Deseu una vegada; després utilitzeu les accions a continuació. Cada connector en cada projecte té la seva pròpia clau.

Escanejar necessita permís de càmera. Per a passis d'un sol ús, decideix qui pot crear passis i qui pot comprovar‑los a la porta o punt de recollida. Els clients normals no necessiten cap rol de personal.

qr_issuer_permission_field

qr_pass_issuer · Nom del camp d'usuari sí/no que indica els empleats autoritzats a crear o revocar passaports. Exemple/per defecte: qr_pass_issuer. Introduïu aquí el nom del camp, no sí o no. Només un administrador autoritzat hauria de canviar aquest permís en un usuari.

qr_staff_permission_field

qr_staff · Nom del camp d'usuari sí/no que indica el personal autoritzat a comprovar i confirmar l'ús. Exemple/per defecte: qr_staff. Un titular de tiquet no necessita aquest permís. Manteniu-lo fora dels formularis d'inscripció i perfil públics.

Configura una vegada
  1. Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins.
  2. Trieu aquest connector i copieu la clau del projecte.
  3. Obriu Bubble → Plugins → Xodera QR Passes Native; enganxeu la clau a project_api_key i deseu.
  4. Afegiu l’element, trieu les vostres dades d’aplicació i construïu el flux de treball a continuació.
  5. Accés a la beta privada només per ara. La instal·lació pública i l’activació de pagament encara no estan obertes.
Instal·lació i subscripció

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.

Desa el resultat a la teva aplicació

Exemple d'Admissió o Recollida: desa la comanda/esdeveniment relacionat, pass_id, expires_at i issue_request_id. Un cop confirmat l'ús, afegeix receipt_id, redeemed_at i l'empleat que va confirmar. No marcis el registre com a complet quan el codi només s'ha escanejat o comprovat. Un codi QR no verifica la identitat d'una persona.

Fallada, cancel·lació i recuperació

Si outcome_unknown=yes, mantén el mateix pass, request_id i les entrades en comprovar el resultat de nou. No creïs una nova confirmació. already_used, expired i revoked són resultats finals del negoci. Si es denega el permís, demana a un administrador autoritzat que revisi el rol de l'empleat. Clear session reinicia l'escàner; no pot desfer un ús completat.

Capacitats i límits

Els passis planificats són d'ús únic, amb una vida útil de 1–86400 segons; per defecte 900. Tipus de passis: access, event, coupon i membership. Comprovar no reserva un pass. Es requereix accés a Internet per a l'ús del pass. No hi ha processament de pagaments, verificació d'identitat ni targeta de soci a llarg termini reutilitzable. Llegir un valor QR ordinari és separat de la comprovació d'un pass.

Configuracions, accions i resultats

Utilitzeu aquests noms a Bubble. Les funcions planificades es marquen per separat.

Configuracions beta disponibles

Configuració de l'element

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

Estats

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

Esdeveniments

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

Accions i les seves entrades

Clear session
Configuració de l'element · 5

Flux de treball planificat. No disponible a la beta actual.

disabledyes/no · Per defecte: false
Valor d'exempleno
Exemple d'expressió BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva l'element mentre l'aplicació està ocupada o aquesta acció no està disponible.
is_activeyes/no · Per defecte: true
Valor d'exempleyes
Exemple d'expressió BubbleGuideHost's view_is_active (your yes/no custom state)
Estableix sí mentre aquesta vista està oberta. Estableix no en sortir, perquè la reproducció o l'obra actual puguin aturar-se.
ui_text_jsontext · Per defecte: "{}"
Valor d'exemple{}
Exemple d'expressió BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional amb etiquetes de botó compatibles. Deixa buit per utilitzar el text integrat.
languagetext · Per defecte: "auto"
Valor d'exempleuk
Exemple d'expressió BubbleCurrent User's preferred_language
Estableix language=auto per seguir un dispositiu o idioma del navegador compatible. Introdueix un codi d'idioma compatible per seleccionar-lo explícitament.
workflow_modeyes/no · Per defecte: false
Valor d'exempleyes
Exemple d'expressió BubbleApp Settings' use_qr_business_actions
Planificat: permetre que el valor QR escanejat sigui utilitzat per Check QR pass. L'escaneig per si sol no confirma l'entrada o la recollida.
Accions i les seves entrades · 5

Flux de treball planificat. No disponible a la beta actual.

Clear session

Sense paràmetres d'acció

Issue QR pass
environmenttext · Per defecte: "development"
Valor d'exempledevelopment
Exemple d'expressió BubbleApp Settings' selected_environment
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
request_idtext · Per defecte: —
Valor d'exemplepickup-123-issue-v1
Exemple d'expressió BubbleCurrent Admission's stable_request_id
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
labeltext · Per defecte: "access"
Valor d'exempleevent
Exemple d'expressió BubbleSelected Admission's pass_label
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
ttl_secondsnumber · Per defecte: 900
Valor d'exemple900
Exemple d'expressió BubbleEvent Settings' pass_ttl_seconds
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.

Valors retornats

pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/no
Check QR pass
environmenttext · Per defecte: "development"
Valor d'exempledevelopment
Exemple d'expressió BubbleApp Settings' selected_environment
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
pass_tokentext · Per defecte: —
Valor d'exemple<opaque token returned by Issue / camera scan>
Exemple d'expressió BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.

Valors retornats

pass_label · textexpires_at · text
Confirm QR redemption
environmenttext · Per defecte: "development"
Valor d'exempledevelopment
Exemple d'expressió BubbleApp Settings' selected_environment
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
pass_tokentext · Per defecte: —
Valor d'exemple<opaque token returned by Issue / camera scan>
Exemple d'expressió BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
request_idtext · Per defecte: —
Valor d'exemplepickup-123-redeem-v1
Exemple d'expressió BubbleCurrent Admission's stable_redemption_request_id
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
confirmyes/no · Per defecte: false
Valor d'exempleyes — explicit confirmation only
Exemple d'expressió BubbleConfirm Checkbox is checked
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.

Valors retornats

pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/no
Revoke QR pass
environmenttext · Per defecte: "development"
Valor d'exempledevelopment
Exemple d'expressió BubbleApp Settings' selected_environment
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
pass_idtext · Per defecte: —
Valor d'exemple<pass_id returned by Issue>
Exemple d'expressió BubbleSelected Admission's pass_id
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.

Valors retornats

pass_id · textrevoked · yes/no
Estats i esdeveniments

Flux de treball planificat. No disponible a la beta actual.

Estats

scanner_status · text

Resultat actual d'aquesta acció. Utilitzeu l'esdeveniment de finalització coincident abans d'enregistrar l'èxit. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded

server_status · text

Resultat actual d'aquesta acció. Utilitzeu l'esdeveniment de finalització coincident abans d'enregistrar l'èxit. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Identificador per a aquest element o acció. Conserva'l amb el registre d'aplicació corresponent. Utilitza el mateix identificador de sol·licitud en tornar a intentar un resultat incert.

pass_label · text

Valor actual de l'element seleccionat. Llegiu-lo després de l'esdeveniment relacionat. empty,access,event,coupon,membership

receipt_id · text

Identificador per a aquest element o acció. Conserva'l amb el registre d'aplicació corresponent. Utilitza el mateix identificador de sol·licitud en tornar a intentar un resultat incert.

error_code · text

Informació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.

is_busy · yes/no

La feina encara està en curs. Espereu abans d'iniciar una altra acció.

is_scanning · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

torch_enabled · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

scan_source · text

Valor actual de l'element seleccionat. Llegiu-lo després de l'esdeveniment relacionat. empty,camera,fixture

pending_redemption · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

scanned_pass_token · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

Esdeveniments

scanner_started

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

scanner_paused

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

scanner_cancelled

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

permission_denied

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

pass_scanned

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

validation_started

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

validation_completed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

redemption_started

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

pass_redeemed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

redemption_rejected

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

redemption_pending

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

fixture_decoded

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

qr_error

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

Preguntes que fan els desenvolupadors

Què signifiquen les dues configuracions de permís?

Nom del camp d'usuari sí/no que indica els empleats autoritzats a crear o revocar passis. Exemple/per defecte: qr_pass_issuer. Escriu aquí el nom del camp, no sí o no. Només un administrador autoritzat hauria de canviar aquest permís en un usuari. Nom del camp d'usuari sí/no que indica el personal autoritzat a comprovar i confirmar l'ús. Exemple/per defecte: qr_staff. Un titular de tiquet no necessita aquest permís. Mantingueu-lo fora dels formularis públics d'inscripció i perfil.

Pot el mateix empleat crear i comprovar passis?

Sí, si un administrador autoritzat concedeix a aquest empleat ambdós permisos. Això no requereix una altra clau de projecte. Normalment els clients no necessiten cap permís. No permetis que els usuaris s'assignin aquests permisos a si mateixos.

Per què utilitzar Comprovar després d'Escanejar?

Escanejar llegeix el codi. Comprovar pregunta si el pass està disponible sense utilitzar‑lo. El personal pot revisar la comanda primer. Només l'acció Confirm QR redemption separada utilitza el pass una vegada.

Com funciona la subscripció?

Preu planificat: instal·lar el connector a Bubble és gratuït. L'accés a BestPlugins és una subscripció separada per a cada connector en cada projecte d'aplicació Bubble: 7 dies gratuïts, després US$1.50 al mes. Development i Live estan inclosos. No hi ha un límit fix al nombre d'operacions; els límits de mida de fitxer i de funcionalitats continuen aplicant-se. La compra encara no està oberta. La pantalla d'activació mostrarà la data de facturació inicial i les condicions de cancel·lació.

Guies relacionades

Llançament de Marketplace pendent

Guia del fòrum no publicada

Per obtenir ajuda, indiqueu quin connector i dispositiu utilitzeu, l'acció que heu provat i què ha passat. Utilitzeu un exemple sense dades personals. No compartiu mai la vostra clau ni fitxers privats.