Interfaz del escáner QR. Se planifican acciones de pase de un solo uso.
Interfaz del escáner QR. Se planifican acciones de pase de un solo uso.
← Todas las guías nativas

Xodera Plugins · Bubble Native

Xodera QR Passes Native

Cree tickets de un solo uso, confirmaciones de recogida o cupones. El personal escanea el código, verifica el resultado, previsualiza el pedido y confirma el uso solo cuando esté 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 noviembre 2026

Ejemplos prácticos

Admisión de un solo uso para un evento el mismo día

Una captura de pantalla de un valor QR ordinario puede reutilizarse en más de una entrada.

Su aplicación almacena un registro de Admisión y una emisión estable `request_id`; use `label=event` curado y un `ttl_seconds` dentro del contrato 1–86400‑second.

Un emisor autorizado ejecuta Issue QR pass y entrega de forma privada el QR devuelto. El personal escanea → Check QR pass → confirma solo si `ok=yes` y `status=available` → Confirm QR redemption con un ID de solicitud estable almacenado.

Sólo `status=redeemed` más `receipt_id` autoriza el recibo de admisión de su aplicación. Guarde la referencia del pase/recibo en la Admisión; no exponga el contenido de QR a análisis.

Para `outcome_unknown`, recupere la misma solicitud con el mismo usuario/entorno/pase; nunca genere un nuevo ID de confirmación. Maneje los estados expired, revoked y ya usados como resultados distintos.

Planificado. Escanear y verificar no usan el pase; sólo la confirmación explícita lo hace.

Canjee un beneficio de corta duración una vez en el mostrador de un socio

Un socio necesita un resultado confirmado usado/no usado en lugar de confiar en una imagen QR o una animación en pantalla.

`label=coupon`; el registro de Beneficio de la aplicación define la elegibilidad y una ventana de validez corta antes de una acción de emisión autorizada.

Emita un pase solo después de la verificación de elegibilidad de su aplicación. En el mostrador, Check QR pass muestra disponibilidad sin consumirlo. Después de que el miembro del personal confirme la entrega del beneficio, ejecute Confirm QR redemption.

Su registro de Beneficio puede almacenar `receipt_id` y la hora de canje confirmada después de `status=redeemed`. El complemento gestiona el estado del pase; su aplicación gestiona el beneficio y la relación con el cliente.

Si un beneficio se cancela antes de su uso, el mismo emisor autorizado puede Revoke QR pass usando su `pass_id`. No anuncie un reembolso o canje exitoso solo a partir de `ok=yes`.

Planificado. Escanear y verificar no usan el pase; sólo la confirmación explícita lo hace.

Confirmar la recogida de equipo o pedido el mismo día

Un flujo de trabajo del personal necesita distinguir escanear una referencia de colección de entregar realmente un artículo.

El registro de Colección propio de su aplicación mantiene la autorización, el artículo previsto y IDs de solicitud de emisión/redención estables separados; use un pase `label=access` de corta duración.

Después de que su aplicación autorice la colección, Issue QR pass. El personal escanea y verifica, inspecciona la Colección coincidente en su aplicación, y luego confirma explícitamente la entrega y Confirm QR redemption.

Sólo después de un recibo `redeemed` confirmado su flujo de trabajo debe marcar la Colección como entregada. Mantenga `receipt_id` como el enlace al resultado del pase.

Un escaneo repetido puede devolver already_used; muestre el registro existente de la aplicación en lugar de entregar otro artículo. Recupere una confirmación incierta con el mismo ID y entradas.

Planificado. Escanear y verificar no usan el pase; sólo la confirmación explícita lo hace.

Lo que funciona ahora

Beta privada. El escáner actual tiene controles de cámara y permisos. La creación, verificación y confirmación de pases de un solo uso está planificada y aún no está disponible en su aplicación.

Crea el flujo de trabajo

Planificado

Flujo de trabajo planificado. No está disponible aún en la beta actual.

Estos ejemplos usan registros de aplicación como Lesson, Message y Order. Reemplácelos con sus propios tipos de datos y nombres de elementos. Las direcciones de medios de ejemplo deben ser sustituidas por sus propios archivos.

  1. Planificado: un empleado autorizado usa Issue QR pass para una admisión o Order. Ejemplo: label=event, ttl_seconds=900, environment=development. Mantenga un request_id estable para ese caso y guarde pass_id con el registro.

  2. Muestre el QR devuelto a su destinatario previsto. El personal lo escanea. En el flujo de trabajo de pases planificados, use workflow_mode=yes y lea scanned_pass_token después de pass_scanned. Estas configuraciones del flujo de trabajo de pases no están disponibles en el escáner actual.

  3. Ejecute Check QR pass con pass_token = QR Scanner's scanned_pass_token. Verifica sin usar el pase. Para status=available, muestre los detalles del pedido o entrada coincidentes para que el personal los revise.

  4. Solo un botón Confirmar separado ejecuta Confirm QR redemption con el mismo pass_token, un request_id estable y confirm=yes. En status=redeemed, guarde receipt_id y marque ese pedido o entrada como completo.

  5. already_used, expired, revoked o invalid indican que no se debe admitir ni entregar el pedido. Un escaneo o una verificación exitosa por sí solos nunca completan la transacción.

Diagrama de flujo — no es una captura de pantalla de la aplicación

Configura una vez

Crea o elige tu proyecto de aplicación Bubble en BestPlugins → Dashboard → Plugins. Elige Xodera QR Passes Native, copia su clave, luego abre Bubble → Plugins → Xodera QR Passes Native y pégala en project_api_key. Guarda una vez; luego usa las acciones a continuación. Cada complemento en cada proyecto tiene su propia clave.

El escaneo requiere permiso de cámara. Para pases de un solo uso, decida quién puede crear pases y quién puede verificarlos en la puerta o punto de recogida. Los clientes habituales no necesitan ningún rol de personal.

qr_issuer_permission_field

qr_pass_issuer · Nombre del campo sí/no de Usuario que indica a los empleados autorizados a crear o revocar pases. Ejemplo/valor predeterminado: qr_pass_issuer. Introduzca aquí el nombre del campo, no sí o no. Sólo un administrador autorizado debe cambiar ese permiso en un usuario.

qr_staff_permission_field

qr_staff · Nombre del campo sí/no de Usuario que indica al personal autorizado a verificar y confirmar el uso. Ejemplo/valor predeterminado: qr_staff. Un titular de ticket no necesita este permiso. Manténgalo fuera de los formularios de registro y perfil públicos.

Configura una vez
  1. Crea o elige tu proyecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
  2. Elige este complemento y copia su clave de proyecto.
  3. Abre Bubble → Plugins → Xodera QR Passes Native; pega la clave en project_api_key y guarda.
  4. Añade el elemento, elige los datos de tu aplicación y construye el flujo de trabajo a continuación.
  5. Acceso a beta privada solo por ahora. La instalación pública y la activación de pago aún no están abiertas.
Instalación y suscripció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.

Guarda el resultado en tu aplicación

Ejemplo de admisión o recogida: guarde el pedido/evento relacionado, pass_id, expires_at y issue_request_id. Después del uso confirmado, añada receipt_id, redeemed_at y el empleado que confirmó. No marque el registro como completo cuando el código solo se haya escaneado o verificado. Un código QR no verifica la identidad de una persona.

Fallo, cancelación y recuperación

Si outcome_unknown=yes, mantenga el mismo pase, request_id y los datos al verificar el resultado nuevamente. No cree una nueva confirmación. already_used, expired y revoked son resultados comerciales finales. Si se niega el permiso, solicite a un administrador autorizado que revise el rol del empleado. Clear session restablece el escáner; no puede deshacer un uso completado.

Capacidades y límites

Los pases planificados son de un solo uso, con una duración de 1–86400 segundos; predeterminado 900. Tipos de pase: access, event, coupon y membership. La verificación no reserva un pase. Se requiere acceso a Internet para usar el pase. No hay procesamiento de pagos, verificación de identidad ni tarjeta de membresía reutilizable a largo plazo. Leer un valor QR ordinario es independiente de la verificación de un pase.

Configuraciones, acciones y resultados

Utilice estos nombres en Bubble. Las funciones planificadas están marcadas por separado.

Configuraciones beta disponibles

Configuración del 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

Acciones y sus entradas

Clear session
Configuración del elemento · 5

Flujo de trabajo planificado. No está disponible aún en la beta actual.

disabledyes/no · Predeterminado: false
Valor de ejemplono
Ejemplo de expresión BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva el elemento mientras tu aplicación está ocupada o esta acción no está disponible.
is_activeyes/no · Predeterminado: true
Valor de ejemployes
Ejemplo de expresión BubbleGuideHost's view_is_active (your yes/no custom state)
Establece sí mientras esta vista está abierta. Establece no al salir, para que la reproducción o el trabajo actual puedan detenerse.
ui_text_jsontext · Predeterminado: "{}"
Valor de ejemplo{}
Ejemplo de expresión BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional con etiquetas de botón compatibles. Déjalo vacío para usar el texto incorporado.
languagetext · Predeterminado: "auto"
Valor de ejemplouk
Ejemplo de expresión BubbleCurrent User's preferred_language
Configurar language=auto para seguir un dispositivo o idioma de navegador compatible. Introduzca un código de idioma compatible para seleccionarlo explícitamente.
workflow_modeyes/no · Predeterminado: false
Valor de ejemployes
Ejemplo de expresión BubbleApp Settings' use_qr_business_actions
Planificado: permitir que el valor QR escaneado sea usado por Check QR pass. Solo escanear no confirma la entrada ni la recogida.
Acciones y sus entradas · 5

Flujo de trabajo planificado. No está disponible aún en la beta actual.

Clear session

Sin parámetros de acción

Issue QR pass
environmenttext · Predeterminado: "development"
Valor de ejemplodevelopment
Ejemplo de expresión BubbleApp Settings' selected_environment
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
request_idtext · Predeterminado: —
Valor de ejemplopickup-123-issue-v1
Ejemplo de expresión BubbleCurrent Admission's stable_request_id
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
labeltext · Predeterminado: "access"
Valor de ejemploevent
Ejemplo de expresión BubbleSelected Admission's pass_label
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
ttl_secondsnumber · Predeterminado: 900
Valor de ejemplo900
Ejemplo de expresión BubbleEvent Settings' pass_ttl_seconds
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.

Devoluciones

pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/no
Check QR pass
environmenttext · Predeterminado: "development"
Valor de ejemplodevelopment
Ejemplo de expresión BubbleApp Settings' selected_environment
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
pass_tokentext · Predeterminado: —
Valor de ejemplo<opaque token returned by Issue / camera scan>
Ejemplo de expresión BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.

Devoluciones

pass_label · textexpires_at · text
Confirm QR redemption
environmenttext · Predeterminado: "development"
Valor de ejemplodevelopment
Ejemplo de expresión BubbleApp Settings' selected_environment
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
pass_tokentext · Predeterminado: —
Valor de ejemplo<opaque token returned by Issue / camera scan>
Ejemplo de expresión BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
request_idtext · Predeterminado: —
Valor de ejemplopickup-123-redeem-v1
Ejemplo de expresión BubbleCurrent Admission's stable_redemption_request_id
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
confirmyes/no · Predeterminado: false
Valor de ejemployes — explicit confirmation only
Ejemplo de expresión BubbleConfirm Checkbox is checked
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.

Devoluciones

pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/no
Revoke QR pass
environmenttext · Predeterminado: "development"
Valor de ejemplodevelopment
Ejemplo de expresión BubbleApp Settings' selected_environment
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
pass_idtext · Predeterminado: —
Valor de ejemplo<pass_id returned by Issue>
Ejemplo de expresión BubbleSelected Admission's pass_id
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.

Devoluciones

pass_id · textrevoked · yes/no
Estados y eventos

Flujo de trabajo planificado. No está disponible aún en la beta actual.

Estados

scanner_status · text

Resultado actual de esta acción. Utilice el evento de finalización coincidente antes de guardar el é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 de esta acción. Utilice el evento de finalización coincidente antes de guardar el éxito. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Identificador para este elemento o acción. Manténgalo con el registro de la aplicación correspondiente. Use el mismo identificador de solicitud al reintentar un resultado incierto.

pass_label · text

Valor actual del elemento seleccionado. Léalo después del evento relacionado. empty,access,event,coupon,membership

receipt_id · text

Identificador para este elemento o acción. Manténgalo con el registro de la aplicación correspondiente. Use el mismo identificador de solicitud al reintentar un resultado incierto.

error_code · text

Información de error de la última acción. Muestra un mensaje útil y ofrece el reintento correspondiente.

is_busy · yes/no

El trabajo sigue en progreso. Espere antes de iniciar otra acción.

is_scanning · yes/no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

torch_enabled · yes/no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

scan_source · text

Valor actual del elemento seleccionado. Léalo después del evento relacionado. empty,camera,fixture

pending_redemption · yes/no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

scanned_pass_token · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

Eventos

scanner_started

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

scanner_paused

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

scanner_cancelled

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

permission_denied

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

pass_scanned

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

validation_started

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

validation_completed

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

redemption_started

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

pass_redeemed

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

redemption_rejected

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

redemption_pending

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

fixture_decoded

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

qr_error

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

Preguntas que hacen los desarrolladores

¿Qué significan los dos ajustes de permiso?

Nombre del campo sí/no de Usuario que indica a los empleados autorizados a crear o revocar pases. Ejemplo/valor predeterminado: qr_pass_issuer. Introduzca el nombre del campo aquí, no sí o no. Sólo un administrador autorizado debe cambiar ese permiso en un usuario. Nombre del campo sí/no de Usuario que indica al personal autorizado a verificar y confirmar el uso. Ejemplo/valor predeterminado: qr_staff. Un titular de ticket no necesita este permiso. Manténgalo fuera de los formularios de registro y perfil públicos.

¿Puede el mismo empleado crear y verificar pases?

Sí, si un administrador autorizado otorga a ese empleado ambas permisos. Esto no requiere otra clave de proyecto. Normalmente los clientes no necesitan ninguno de los permisos. No permita que los usuarios se asignen estos permisos a sí mismos.

¿Por qué usar Verificar después de Escanear?

Escanear lee el código. Verificar pregunta si el pase está disponible sin usarlo. El personal puede revisar el pedido primero. Sólo la acción separada Confirm QR redemption usa el pase una vez.

¿Cómo funciona la suscripción?

Precios planificados: instalar el plugin en Bubble es gratuito. El acceso a BestPlugins es una suscripción separada para cada plugin en cada proyecto de aplicación Bubble: 7 días gratis, luego US$1.50 por mes. Development y Live están incluidos. No hay un límite fijo en la cantidad de operaciones; los límites de tamaño de archivo y de funciones siguen aplicando. El proceso de compra aún no está abierto. La pantalla de activación mostrará la primera fecha de facturación y los términos de cancelación.

Guías relacionadas

Lanzamiento de Marketplace pendiente

Guía del foro no publicada

Para obtener ayuda, indíquenos qué plugin y dispositivo utiliza, la acción que intentó y lo que ocurrió. Use un ejemplo sin datos personales. Nunca comparta su clave ni archivos privados.