
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.
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.
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.
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.
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.
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.
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
- Crea o scegli il tuo progetto app Bubble su BestPlugins → Dashboard → Plugins.
- Scegli questo plugin e copia la sua chiave di progetto.
- Apri Bubble → Plugins → Xodera QR Passes Native; incolla la chiave in project_api_key e salva.
- Aggiungi l'elemento, scegli i dati della tua app e costruisci il flusso di lavoro qui sotto.
- 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 · textStati
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/noEventi
scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_errorAzioni e i loro input
Clear sessionImpostazioni elemento · 5
Flusso di lavoro pianificato. Non è ancora disponibile nella beta attuale.
disabledyes/no · Predefinito: false- Valore di esempio
no - Esempio di espressione Bubble
GuideHost'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 esempio
yes - Esempio di espressione Bubble
GuideHost'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 Bubble
App 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 esempio
uk - Esempio di espressione Bubble
Current 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 esempio
yes - Esempio di espressione Bubble
App 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 esempio
development - Esempio di espressione Bubble
App Settings' selected_environment - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
request_idtext · Predefinito: —- Valore di esempio
pickup-123-issue-v1 - Esempio di espressione Bubble
Current Admission's stable_request_id - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
labeltext · Predefinito: "access"- Valore di esempio
event - Esempio di espressione Bubble
Selected Admission's pass_label - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
ttl_secondsnumber · Predefinito: 900- Valore di esempio
900 - Esempio di espressione Bubble
Event 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/noCheck QR pass
environmenttext · Predefinito: "development"- Valore di esempio
development - Esempio di espressione Bubble
App 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 Bubble
QR 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 · textConfirm QR redemption
environmenttext · Predefinito: "development"- Valore di esempio
development - Esempio di espressione Bubble
App 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 Bubble
QR 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 esempio
pickup-123-redeem-v1 - Esempio di espressione Bubble
Current 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 esempio
yes — explicit confirmation only - Esempio di espressione Bubble
Confirm 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/noRevoke QR pass
environmenttext · Predefinito: "development"- Valore di esempio
development - Esempio di espressione Bubble
App 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 Bubble
Selected Admission's pass_id - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Resi
pass_id · textrevoked · yes/noStati ed eventi
Flusso di lavoro pianificato. Non è ancora disponibile nella beta attuale.
Stati
scanner_status · textRisultato 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 · textRisultato attuale di questa azione. Usa l'evento di completamento corrispondente prima di salvare il successo. empty,available,redeemed,already_used,expired,revoked
pass_id · textIdentificatore 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 · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato. empty,access,event,coupon,membership
receipt_id · textIdentificatore 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 · textInformazioni di errore per l'ultima azione. Mostra un messaggio utile e offri il tentativo di nuovo pertinente.
is_busy · yes/noIl lavoro è ancora in corso. Attendi prima di avviare un'altra azione.
is_scanning · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
torch_enabled · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
scan_source · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato. empty,camera,fixture
pending_redemption · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
scanned_pass_token · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
Eventi
scanner_startedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
scanner_pausedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
scanner_cancelledQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
permission_deniedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
pass_scannedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
validation_startedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
validation_completedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
redemption_startedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
pass_redeemedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
redemption_rejectedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
redemption_pendingQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
fixture_decodedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
qr_errorQuando 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.