Interface do escáner QR. Están planificadas accións de pase de un só uso.
Interface do escáner QR. Están planificadas accións de pase de un só uso.
← Todas as guías nativas

Xodera Plugins · Bubble Native

Xodera QR Passes Native

Cree tickets de un só uso, confirmacións de recollida ou cupóns. O persoal escanea o código, verifica o resultado, previsualiza o pedido e confirma o uso só cando estea listo.

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ón revisada 6 novembro 2026

Exemplos prácticos

Admisión de un só uso para un evento do mesmo día

Unha captura de pantalla dun valor QR ordinario pode reutilizarse en máis dun punto de entrada.

A súa aplicación almacena un rexistro de Admission e un `request_id` estable para a emisión; use `label=event` curado e un `ttl_seconds` dentro do contrato de 1–86400 segundos.

Un emisor autorizado executa Issue QR pass e entrega privadamente o QR devolto. O persoal escanea → Check QR pass → confirma só se `ok=yes` e `status=available` → Confirm QR redemption con un ID de solicitude estable almacenado.

Só `status=redeemed` máis `receipt_id` autoriza o recibo de admisión da súa aplicación. Almacene a referencia do pase/recibo na Admission; non exposa o contido de QR á analítica.

Para `outcome_unknown`, recupere a mesma solicitude co mesmo usuario/ambiente/pase; nunca xere un novo ID de confirmación. Xestione expired, revoked e os estados xa usados como resultados distintos.

Planificado. O escaneo e a comprobación non consomen o pase; só a confirmación explícita o consome.

Resgate un beneficio de curta duración unha única vez no mostrador dun socio.

Un socio necesita un resultado confirmado usado/non usado en lugar de confiar nunha imaxe QR ou nunha animación na pantalla.

`label=coupon`; o rexistro de Beneficio da aplicación define a elegibilidade e unha curta xanela de validez antes dunha acción de emisión autorizada.

Emita un pase só despois da comprobación de elegibilidade da súa aplicación. No mostrador, Check QR pass mostra dispoñibilidade sen consumilo. Despois de que o persoal confirme a entrega do beneficio, execute Confirm QR redemption.

O seu rexistro de Beneficio pode almacenar `receipt_id` e a hora de redepción confirmada despois de `status=redeemed`. O complemento xestiona o estado do pase; a súa aplicación xestiona o beneficio e a relación co cliente.

Se un beneficio se cancela antes do uso, o mesmo emisor autorizado pode Revoke QR pass usando o seu `pass_id`. Non anuncie un reembolso ou unha redepción exitosa só a partir de `ok=yes`.

Planificado. O escaneo e a comprobación non consomen o pase; só a confirmación explícita o consome.

Confirmar a recollida de equipamento ou pedido no mesmo día.

Un fluxo de traballo do persoal necesita distinguir o escaneo dunha referencia de recollida da entrega real dun artigo.

O rexistro de Colección posuído pola súa aplicación conserva a autorización, o artigo previsto e IDs de solicitude de emisión/redepción estables separados; use un pase `label=access` de curta duración.

Despois de que a súa aplicación autorice a recollida, Issue QR pass. O persoal escanea e comproba, inspecciona a Colección coincidente na súa aplicación e, a continuación, confirma explicitamente a entrega e Confirm QR redemption.

Só despois dun recibo `redeemed` confirmado debería o seu fluxo de traballo marcar a Colección como entregada. Mantén `receipt_id` como a ligazón ao resultado do pase.

Un escaneo repetido pode devolver already_used; amose o rexistro existente da aplicación en vez de entregar outro artigo. Recupere unha confirmación incerta co mesmo ID e entradas.

Planificado. O escaneo e a comprobación non consomen o pase; só a confirmación explícita o consome.

O que funciona agora

Beta privada. O escáner actual ten control de cámara e permisos. A creación, verificación e confirmación de pases de un só uso está planificada e aínda non está dispoñible para usar na súa aplicación.

Crea o fluxo de traballo

Planificado

Fluxo de traballo planificado. Aínda non está dispoñible na versión beta actual.

Estes exemplos usan rexistros de aplicación como Lesson, Message e Order. Substitúeaos polos seus propios tipos de datos e nomes de elementos. Os enderezos de medios de exemplo deben substituírse polos seus propios ficheiros.

  1. Planificado: un empregado autorizado usa Issue QR pass para unha admisión ou Order. Exemplo: label=event, ttl_seconds=900, environment=development. Manteña un request_id estable para esa emisión e garde pass_id co rexistro.

  2. Mostre o QR devolto ao seu titular previsto. O persoal escanéao. No fluxo de traballo de pases planificados, use workflow_mode=yes e lea scanned_pass_token despois de pass_scanned. Estas configuracións do fluxo de pase non están dispoñibles no escáner actual.

  3. Execute Check QR pass con pass_token = QR Scanner's scanned_pass_token. Verifica sen consumir o pase. Para status=available, mostre os detalles da orde ou entrada coincidentes para que o persoal poida revisalos.

  4. Só un botón Confirmar separado executa Confirm QR redemption co mesmo pass_token, un request_id estable e confirm=yes. En status=redeemed, garde receipt_id e marque esa orde ou entrada como completa.

  5. already_used, expired, revoked ou invalid significa non admitir nin entregar a orde. Un escaneo ou unha comprobación exitosa por si só nunca completa a transacción.

Diagrama do fluxo de traballo — non é unha captura de pantalla da aplicación

Configura unha vez

Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins. Escolla Xodera QR Passes Native, copie a súa clave, despois abra Bubble → Plugins → Xodera QR Passes Native e péguela en project_api_key. Guarde unha vez; a seguir utilice as accións a continuación. Cada complemento en cada proxecto ten a súa propia clave.

A escaneo necesita permiso de cámara. Para pases de un só uso, decida quen pode crear pases e quen pode comprobalo na porta ou punto de recollida. Os clientes ordinarios non precisan ningún rol de persoal.

qr_issuer_permission_field

qr_pass_issuer · Nome do campo de usuario si/non que marca aos empregados autorizados a crear ou revogar pases. Exemplo/por defecto: qr_pass_issuer. Introduza aquí o nome do campo, non si ou non. Só un administrador autorizado debe cambiar ese permiso nun usuario.

qr_staff_permission_field

qr_staff · Nome do campo de usuario si/non que marca ao persoal autorizado a comprobar e confirmar o uso. Exemplo/por defecto: qr_staff. Un titular de billete non necesita este permiso. Mantéña fóra dos formularios públicos de rexistro e perfil.

Configura unha vez
  1. Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
  2. Escolla este complemento e copie a súa clave de proxecto.
  3. Abra Bubble → Plugins → Xodera QR Passes Native; pegue a clave en project_api_key e garde.
  4. Engada o elemento, escolla os datos da súa aplicación e constrúa o fluxo de traballo a continuación.
  5. Acceso a beta privada só por agora. A instalación pública e a activación de pago aínda non están abertas.
Instalación e subscrición

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.

Garde o resultado na súa aplicación

Exemplo de admisión ou recollida: garde a orde/evento relacionado, pass_id, expires_at e issue_request_id. Despois do uso confirmado, engada receipt_id, redeemed_at e o empregado que confirmou. Non marque o rexistro como completo cando o código só se escaneou ou comprobou. Un código QR non verifica a identidade dunha persoa.

Fallo, cancelación e recuperación

Se outcome_unknown=yes, manteña o mesmo pase, request_id e as entradas ao comprobar o resultado de novo. Non cree unha nova confirmación. already_used, expired e revoked son resultados empresariais finais. Se se denega o permiso, solicite a un administrador autorizado que revise o rol do empregado. Clear session reinicia o escáner; non pode desfacer un uso completado.

Capacidades e límites

Os pases planificados son de uso único, cun tempo de vida de 1–86400 segundos; por defecto 900. Tipos de pase: access, event, coupon e membership. A comprobación non reserva un pase. É necesario acceso a Internet para usar o pase. Non hai procesamento de pagamento, verificación de identidade ou tarxeta de afiliación reutilizable a longo prazo. Ler un valor QR ordinario é independente da comprobación dun pase.

Configuracións, accións e resultados

Utilice estes nomes en Bubble. As funcionalidades planificadas están marcadas por separado.

Configuracións beta dispoñibles

Configuración do elemento

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

Estados

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

Eventos

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

Accións e as súas entradas

Clear session
Configuración do elemento · 5

Fluxo de traballo planificado. Aínda non está dispoñible na versión beta actual.

disabledyes/no · Predeterminado: false
Valor de exemplono
Exemplo de expresión BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva o elemento mentres a túa aplicación está ocupada ou esta acción non está dispoñible.
is_activeyes/no · Predeterminado: true
Valor de exemployes
Exemplo de expresión BubbleGuideHost's view_is_active (your yes/no custom state)
Establece sí mentres esta vista está aberta. Establece non ao saír, para que a reprodución ou o traballo actual poidan detenerse.
ui_text_jsontext · Predeterminado: "{}"
Valor de exemplo{}
Exemplo de expresión BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional con etiquetas de botón compatibles. Déixao baleiro para usar o texto incorporado.
languagetext · Predeterminado: "auto"
Valor de exemplouk
Exemplo de expresión BubbleCurrent User's preferred_language
Establece language=auto para seguir un dispositivo ou idioma de navegador compatible. Introduce un código de idioma compatible para elixilo explicitamente.
workflow_modeyes/no · Predeterminado: false
Valor de exemployes
Exemplo de expresión BubbleApp Settings' use_qr_business_actions
Planificado: permitir que o valor QR escaneado sexa usado por Check QR pass. O escaneo por si só non confirma a entrada ou a recollida.
Accións e as súas entradas · 5

Fluxo de traballo planificado. Aínda non está dispoñible na versión beta actual.

Clear session

Sen parámetros de acción

Issue QR pass
environmenttext · Predeterminado: "development"
Valor de exemplodevelopment
Exemplo de expresión BubbleApp Settings' selected_environment
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
request_idtext · Predeterminado: —
Valor de exemplopickup-123-issue-v1
Exemplo de expresión BubbleCurrent Admission's stable_request_id
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
labeltext · Predeterminado: "access"
Valor de exemploevent
Exemplo de expresión BubbleSelected Admission's pass_label
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
ttl_secondsnumber · Predeterminado: 900
Valor de exemplo900
Exemplo de expresión BubbleEvent Settings' pass_ttl_seconds
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.

Valores devoltos

pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/no
Check QR pass
environmenttext · Predeterminado: "development"
Valor de exemplodevelopment
Exemplo de expresión BubbleApp Settings' selected_environment
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
pass_tokentext · Predeterminado: —
Valor de exemplo<opaque token returned by Issue / camera scan>
Exemplo de expresión BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.

Valores devoltos

pass_label · textexpires_at · text
Confirm QR redemption
environmenttext · Predeterminado: "development"
Valor de exemplodevelopment
Exemplo de expresión BubbleApp Settings' selected_environment
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
pass_tokentext · Predeterminado: —
Valor de exemplo<opaque token returned by Issue / camera scan>
Exemplo de expresión BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
request_idtext · Predeterminado: —
Valor de exemplopickup-123-redeem-v1
Exemplo de expresión BubbleCurrent Admission's stable_redemption_request_id
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
confirmyes/no · Predeterminado: false
Valor de exemployes — explicit confirmation only
Exemplo de expresión BubbleConfirm Checkbox is checked
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.

Valores devoltos

pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/no
Revoke QR pass
environmenttext · Predeterminado: "development"
Valor de exemplodevelopment
Exemplo de expresión BubbleApp Settings' selected_environment
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
pass_idtext · Predeterminado: —
Valor de exemplo<pass_id returned by Issue>
Exemplo de expresión BubbleSelected Admission's pass_id
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.

Valores devoltos

pass_id · textrevoked · yes/no
Estados e eventos

Fluxo de traballo planificado. Aínda non está dispoñible na versión beta actual.

Estados

scanner_status · text

Resultado actual desta acción. Use o evento de finalización coincidente antes de gardar o éxito. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded

server_status · text

Resultado actual desta acción. Use o evento de finalización coincidente antes de gardar o éxito. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Identificador para este elemento ou acción. Mantéña co rexistro da aplicación correspondente. Use o mesmo identificador de solicitude ao volver a intentar un resultado incerto.

pass_label · text

Valor actual do elemento seleccionado. Léao despois do evento relacionado. empty,access,event,coupon,membership

receipt_id · text

Identificador para este elemento ou acción. Mantéña co rexistro da aplicación correspondente. Use o mesmo identificador de solicitude ao volver a intentar un resultado incerto.

error_code · text

Información de erro da última acción. Mostra unha mensaxe útil e ofrece o reintento correspondente.

is_busy · yes/no

O traballo aínda está en progreso. Agarde antes de iniciar outra acción.

is_scanning · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

torch_enabled · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

scan_source · text

Valor actual do elemento seleccionado. Léao despois do evento relacionado. empty,camera,fixture

pending_redemption · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

scanned_pass_token · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

Eventos

scanner_started

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

scanner_paused

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

scanner_cancelled

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

permission_denied

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

pass_scanned

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

validation_started

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

validation_completed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

redemption_started

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

pass_redeemed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

redemption_rejected

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

redemption_pending

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

fixture_decoded

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

qr_error

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

Preguntas que os desenvolvedores fan

Que significan as dúas configuracións de permiso?

Nome do campo de usuario si/non que marca aos empregados con permiso para crear ou revogar pases. Exemplo/por defecto: qr_pass_issuer. Insira aquí o nome do campo, non si ou non. Só un administrador autorizado debe cambiar ese permiso nun usuario. Nome do campo de usuario si/non que marca ao persoal con permiso para comprobar e confirmar o uso. Exemplo/por defecto: qr_staff. Un titular de billete non necesita este permiso. Mantéña fóra dos formularios públicos de rexistro e perfil.

Pode o mesmo empregado crear e comprobar pases?

Sí, se un administrador autorizado concede a ese empregado ambos permisos. Isto non require outra clave de proxecto. Os clientes normalmente non precisan ningún dos permisos. Non permita que os usuarios se asignen estes permisos a si mesmos.

Por que usar Comprobar despois de Escanear?

Escanear le o código. Comprobar pregunta se o pase está dispoñible sen usalo. O persoal pode revisar a orde primeiro. Só a acción Confirm QR redemption separada usa o pase unha vez.

Como funciona a subscrición?

Prezo previsto: instalar o complemento en Bubble é gratuíto. O acceso a BestPlugins é unha subscrición separada para cada complemento en cada proxecto de aplicación Bubble: 7 días gratuítos, despois US$1.50 ao mes. Development e Live están incluídos. Non hai un límite fixo no número de operacións; os límites de tamaño de ficheiro e de funcionalidades aínda se aplican. O proceso de compra aínda non está aberto. A pantalla de activación mostrará a primeira data de facturación e os termos de cancelación.

Guías relacionadas

Marketplace publicación pendente

Guía do foro non publicada

Para obter axuda, indícanos que complemento e dispositivo utilizas, a acción que intentaches e o que sucedeu. Usa un exemplo sen datos persoais. Nunca compartas a túa clave ou ficheiros privados.