Interfaccia scanner QR. Sono previste azioni di passaggio monouso.
Interfaccia scanner QR. Sono previste azioni di passaggio monouso.
← Tutte le guide native

Xodera Plugins · Bubble Native

Xodera QR Passes Native

Crea ticket monouso, conferme di ritiro o coupon. Il personale scansiona il codice, verifica il risultato, visualizza l'anteprima dell'ordine e conferma l'uso solo quando è pronto.

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.

Documentazione revisionata 6 novembre 2026

Esempi pratici

Ammissione monouso per un evento dello stesso giorno

Uno screenshot di un valore QR ordinario può comunque essere riutilizzato in più di un ingresso.

La tua app memorizza un record di Ammissione e un'emissione stabile `request_id`; usa `label=event` curato e un `ttl_seconds` entro il contratto 1–86400-second.

Un emittente autorizzato esegue Issue QR pass e consegna privatamente lo QR restituito. Lo staff scansiona → Check QR pass → conferma solo se `ok=yes` e `status=available` → Confirm QR redemption con un ID di richiesta stabile memorizzato.

Solo `status=redeemed` più `receipt_id` autorizzano la ricevuta di ammissione della tua app. Memorizza il riferimento al pass/ricevuta sull'Ammissione; non esporre i contenuti di QR agli analytics.

Per `outcome_unknown`, recupera la stessa richiesta con utente/ambiente/pass identici; non generare mai un nuovo ID di conferma. Gestisci gli stati expired, revoked e già utilizzati come risultati distinti.

Previsto. La scansione e il controllo non usano il pass; solo la conferma esplicita lo fa.

Riscatta un beneficio a breve durata una volta al banco del partner

Un partner ha bisogno di un risultato confermato usato/non usato invece di fidarsi di un'immagine QR o di un'animazione sullo schermo.

`label=coupon`; il record Benefit della app definisce l'idoneità e una breve finestra di validità prima di un'azione di emissione autorizzata.

Emessi un pass solo dopo il controllo di idoneità della tua app. Al banco, Check QR pass mostra la disponibilità senza consumarlo. Dopo che il membro dello staff conferma la consegna del beneficio, esegui Confirm QR redemption.

Il tuo record Benefit può memorizzare `receipt_id` e l'ora di riscatto confermata dopo `status=redeemed`. Il plugin gestisce lo stato del pass; la tua app gestisce il beneficio e la relazione con il cliente.

Se un beneficio viene annullato prima dell'uso, lo stesso emittente autorizzato può Revoke QR pass usando il suo `pass_id`. Non annunciare un rimborso o un riscatto riuscito solo da `ok=yes`.

Previsto. La scansione e il controllo non usano il pass; solo la conferma esplicita lo fa.

Conferma il ritiro di attrezzature o ordini nello stesso giorno

Un flusso di lavoro dello staff deve distinguere la scansione di un riferimento di raccolta dal reale consegnare un oggetto.

Il record Collection di proprietà della tua app conserva l'autorizzazione, l'elemento previsto e ID di richiesta di emissione/redenzione stabili separati; utilizza un pass `label=access` a breve durata.

Dopo che la tua app autorizza la raccolta, Issue QR pass. Lo staff scansiona e verifica, ispeziona la Collection corrispondente nella tua app, quindi conferma esplicitamente il trasferimento e Confirm QR redemption.

Solo dopo una ricevuta `redeemed` confermata il tuo flusso di lavoro dovrebbe impostare la Raccolta come consegnata. Mantieni `receipt_id` come collegamento al risultato del pass.

Una scansione ripetuta può restituire already_used; visualizza il record esistente dell'app invece di consegnare un altro oggetto. Recupera una conferma incerta con lo stesso ID e gli stessi input.

Previsto. La scansione e il controllo non usano il pass; solo la conferma esplicita lo fa.

Cosa funziona ora

Beta privata. Lo scanner attuale dispone di controlli per fotocamera e permessi. La creazione, la verifica e la conferma di pass monouso è pianificata e non è ancora pronta per l'uso nella tua app.

Crea il flusso di lavoro

Pianificato

Flusso di lavoro pianificato. Non è ancora disponibile nella beta attuale.

Questi esempi utilizzano record di app come Lesson, Message e Order. Sostituiscili con i tuoi tipi di dati e nomi di elemento. Gli indirizzi multimediali di esempio devono essere sostituiti con i tuoi file.

  1. Pianificato: un dipendente autorizzato utilizza Issue QR pass per un'Ammissione o Order. Esempio: label=event, ttl_seconds=900, environment=development. Mantieni uno request_id stabile per quella emissione e salva pass_id con il record.

  2. Mostra lo QR restituito al destinatario previsto. Lo staff lo scansiona. Nel flusso di lavoro dei pass pianificati, usa workflow_mode=yes e leggi scanned_pass_token dopo pass_scanned. Queste impostazioni del flusso di lavoro dei pass non sono disponibili nello scanner attuale.

  3. Esegui Check QR pass con pass_token = QR Scanner's scanned_pass_token. Effettua la verifica senza utilizzare il pass. Per status=available, mostra i dettagli dell'ordine o dell'ingresso corrispondente affinché lo staff possa esaminarli.

  4. Solo un pulsante Conferma separato esegue Confirm QR redemption con lo stesso pass_token, uno request_id stabile e confirm=yes. Su status=redeemed, salva receipt_id e contrassegna quell'ordine o ingresso come completato.

  5. already_used, expired, revoked o invalid indicano di non ammettere o consegnare l'ordine. Una scansione o un Check riuscito da solo non completa mai la transazione.

Diagramma del flusso di lavoro — non è uno screenshot dell'app

Configura una sola volta

Crea o scegli il tuo progetto app Bubble in BestPlugins → Dashboard → Plugins. Scegli Xodera QR Passes Native, copia la sua chiave, quindi apri Bubble → Plugins → Xodera QR Passes Native e incollala in project_api_key. Salva una volta; poi usa le azioni qui sotto. Ogni plugin in ogni progetto ha la propria chiave.

La scansione richiede il permesso per la fotocamera. Per i pass monouso, decidi chi può crearli e chi può verificarli alla porta o al punto di ritiro. I clienti ordinari non hanno bisogno di alcun ruolo di staff.

qr_issuer_permission_field

qr_pass_issuer · Nome del campo sì/no dell'utente che indica i dipendenti autorizzati a creare o revocare i pass. Esempio/predefinito: qr_pass_issuer. Inserisci qui il nome del campo, non sì o no. Solo un amministratore autorizzato dovrebbe modificare tale permesso su un utente.

qr_staff_permission_field

qr_staff · Nome del campo sì/no dell'utente che indica lo staff autorizzato a controllare e confermare l'uso. Esempio/predefinito: qr_staff. Un titolare di ticket non ha bisogno di questo permesso. Tienilo fuori dai moduli di registrazione pubblici e dei profili.

Configura una sola volta
  1. Crea o scegli il tuo progetto app Bubble su BestPlugins → Dashboard → Plugins.
  2. Scegli questo plugin e copia la sua chiave di progetto.
  3. Apri Bubble → Plugins → Xodera QR Passes Native; incolla la chiave in project_api_key e salva.
  4. Aggiungi l'elemento, scegli i dati della tua app e costruisci il flusso di lavoro qui sotto.
  5. Accesso beta privato solo per ora. L'installazione pubblica e l'attivazione a pagamento non sono ancora disponibili.
Installazione e abbonamento

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.

Salva il risultato nella tua app

Esempio di Ammissione o Ritiro: salva l'ordine/evento correlato, pass_id, expires_at e issue_request_id. Dopo l'uso confermato, aggiungi receipt_id, redeemed_at e il dipendente che ha confermato. Non contrassegnare il record come completato quando il codice è solo scansionato o controllato. Un codice QR non verifica l'identità di una persona.

Errore, annullamento e ripristino

Se outcome_unknown=yes, mantieni lo stesso pass, request_id e gli input quando verifichi nuovamente il risultato. Non creare una nuova conferma. already_used, expired e revoked sono risultati aziendali finali. Se il permesso è negato, chiedi a un amministratore autorizzato di revisionare il ruolo del dipendente. Clear session reimposta lo scanner; non può annullare un uso completato.

Capacità e limiti

I pass pianificati sono monouso, con una durata di 1–86400 secondi; predefinito 900. Tipi di pass: access, event, coupon e membership. La verifica non riserva un pass. È necessario l'accesso a Internet per l'uso del pass. Nessuna elaborazione di pagamento, verifica dell'identità o tessera di abbonamento a lungo termine riutilizzabile. La lettura di un valore QR ordinario è separata dalla verifica di un pass.

Impostazioni, azioni e risultati

Usa questi nomi in Bubble. Le funzionalità pianificate sono contrassegnate separatamente.

Impostazioni beta disponibili

Impostazioni elemento

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

Stati

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

Eventi

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

Azioni e i loro input

Clear session
Impostazioni elemento · 5

Flusso di lavoro pianificato. Non è ancora disponibile nella beta attuale.

disabledyes/no · Predefinito: false
Valore di esempiono
Esempio di espressione BubbleGuideHost's is_busy (your yes/no custom state)
Disabilita l'elemento mentre la tua app è occupata o questa azione non è disponibile.
is_activeyes/no · Predefinito: true
Valore di esempioyes
Esempio di espressione BubbleGuideHost's view_is_active (your yes/no custom state)
Imposta sì mentre questa vista è aperta. Imposta no quando esci, così la riproduzione o il lavoro corrente può fermarsi.
ui_text_jsontext · Predefinito: "{}"
Valore di esempio{}
Esempio di espressione BubbleApp Settings' player_labels_json (supported keys only)
JSON opzionale con etichette dei pulsanti supportate. Lascia vuoto per usare il testo integrato.
languagetext · Predefinito: "auto"
Valore di esempiouk
Esempio di espressione BubbleCurrent User's preferred_language
Imposta language=auto per seguire la lingua di un dispositivo o browser supportato. Inserisci un codice lingua supportato per sceglierla esplicitamente.
workflow_modeyes/no · Predefinito: false
Valore di esempioyes
Esempio di espressione BubbleApp Settings' use_qr_business_actions
Pianificato: consentire che il valore QR scansionato sia utilizzato da Check QR pass. La sola scansione non conferma l'ingresso o il ritiro.
Azioni e i loro input · 5

Flusso di lavoro pianificato. Non è ancora disponibile nella beta attuale.

Clear session

Nessun parametro di azione

Issue QR pass
environmenttext · Predefinito: "development"
Valore di esempiodevelopment
Esempio di espressione BubbleApp Settings' selected_environment
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
request_idtext · Predefinito: —
Valore di esempiopickup-123-issue-v1
Esempio di espressione BubbleCurrent Admission's stable_request_id
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
labeltext · Predefinito: "access"
Valore di esempioevent
Esempio di espressione BubbleSelected Admission's pass_label
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
ttl_secondsnumber · Predefinito: 900
Valore di esempio900
Esempio di espressione BubbleEvent Settings' pass_ttl_seconds
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.

Resi

pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/no
Check QR pass
environmenttext · Predefinito: "development"
Valore di esempiodevelopment
Esempio di espressione BubbleApp Settings' selected_environment
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
pass_tokentext · Predefinito: —
Valore di esempio<opaque token returned by Issue / camera scan>
Esempio di espressione BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.

Resi

pass_label · textexpires_at · text
Confirm QR redemption
environmenttext · Predefinito: "development"
Valore di esempiodevelopment
Esempio di espressione BubbleApp Settings' selected_environment
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
pass_tokentext · Predefinito: —
Valore di esempio<opaque token returned by Issue / camera scan>
Esempio di espressione BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
request_idtext · Predefinito: —
Valore di esempiopickup-123-redeem-v1
Esempio di espressione BubbleCurrent Admission's stable_redemption_request_id
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
confirmyes/no · Predefinito: false
Valore di esempioyes — explicit confirmation only
Esempio di espressione BubbleConfirm Checkbox is checked
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.

Resi

pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/no
Revoke QR pass
environmenttext · Predefinito: "development"
Valore di esempiodevelopment
Esempio di espressione BubbleApp Settings' selected_environment
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
pass_idtext · Predefinito: —
Valore di esempio<pass_id returned by Issue>
Esempio di espressione BubbleSelected Admission's pass_id
Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.

Resi

pass_id · textrevoked · yes/no
Stati ed eventi

Flusso di lavoro pianificato. Non è ancora disponibile nella beta attuale.

Stati

scanner_status · text

Risultato attuale di questa azione. Usa l'evento di completamento corrispondente prima di salvare il successo. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded

server_status · text

Risultato attuale di questa azione. Usa l'evento di completamento corrispondente prima di salvare il successo. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Identificatore per questo elemento o azione. Conservalo con il record dell'app corrispondente. Usa lo stesso identificatore di richiesta quando riprovi un risultato incerto.

pass_label · text

Valore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato. empty,access,event,coupon,membership

receipt_id · text

Identificatore per questo elemento o azione. Conservalo con il record dell'app corrispondente. Usa lo stesso identificatore di richiesta quando riprovi un risultato incerto.

error_code · text

Informazioni di errore per l'ultima azione. Mostra un messaggio utile e offri il tentativo di nuovo pertinente.

is_busy · yes/no

Il lavoro è ancora in corso. Attendi prima di avviare un'altra azione.

is_scanning · yes/no

Valore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.

torch_enabled · yes/no

Valore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.

scan_source · text

Valore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato. empty,camera,fixture

pending_redemption · yes/no

Valore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.

scanned_pass_token · text

Valore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.

Eventi

scanner_started

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

scanner_paused

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

scanner_cancelled

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

permission_denied

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

pass_scanned

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

validation_started

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

validation_completed

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

redemption_started

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

pass_redeemed

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

redemption_rejected

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

redemption_pending

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

fixture_decoded

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

qr_error

Quando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.

Domande che gli sviluppatori pongono

Cosa significano le due impostazioni di permesso?

Nome del campo utente sì/no che indica i dipendenti autorizzati a creare o revocare i pass. Esempio/predefinito: qr_pass_issuer. Inserisci qui il nome del campo, non sì o no. Solo un amministratore autorizzato dovrebbe modificare tale permesso su un utente. Nome del campo utente sì/no che indica lo staff autorizzato a verificare e confermare l'uso. Esempio/predefinito: qr_staff. Un titolare di biglietto non necessita di questo permesso. Mantienilo fuori dai moduli di registrazione pubblica e dai profili.

Lo stesso dipendente può creare e verificare i pass?

Sì, se un amministratore autorizzato concede a quel dipendente entrambi i permessi. Non è necessaria un'altra chiave di progetto. I clienti normalmente non hanno bisogno di nessuno dei due permessi. Non consentire agli utenti di assegnare questi permessi a se stessi.

Perché usare il Check dopo la Scan?

La scansione legge il codice. Il controllo chiede se il pass è disponibile senza usarlo. Lo staff può rivedere l'ordine prima. Solo l'azione separata Confirm QR redemption utilizza il pass una volta.

Come funziona l'abbonamento?

Prezzo pianificato: l'installazione del plugin in Bubble è gratuita. L'accesso a BestPlugins è un abbonamento separato per ogni plugin in ogni progetto app Bubble: 7 giorni gratuiti, poi US$1.50 al mese. Development e Live sono inclusi. Non esiste un limite fisso al numero di operazioni; i limiti di dimensione file e di funzionalità rimangono validi. Il checkout non è ancora aperto. La schermata di attivazione mostrerà la prima data di fatturazione e i termini di cancellazione.

Guide correlate

Rilascio Marketplace in sospeso

Guida del forum non pubblicata

Per assistenza, indicaci quale plugin e dispositivo utilizzi, l'azione che hai provato e cosa è accaduto. Usa un esempio senza dati personali. Non condividere mai la tua chiave o file privati.