
Xodera Plugins · Bubble Native
Xodera QR Passes Native
Erstellen Sie Einmal‑Tickets, Abholbestätigungen oder Gutscheine. Das Personal scannt den Code, prüft das Ergebnis, zeigt die Bestellung in der Vorschau und bestätigt die Nutzung nur, wenn es bereit ist.
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.
Dokumentation geprüft 6 November 2026
Praktische Beispiele
Einmalige Eintrittskarte für eine Veranstaltung am selben Tag
Ein Screenshot eines normalen QR‑Werts kann anderweitig an mehr als einem Eingang wiederverwendet werden.
Ihre App speichert einen Admission‑Datensatz und eine stabile Ausgabe `request_id`; verwenden Sie kuratierte `label=event` und ein `ttl_seconds` innerhalb des 1–86400‑Sekunden‑Vertrags.
Ein autorisierter Aussteller führt Issue QR pass aus und liefert das zurückgegebene QR privat aus. Personal scannt → Check QR pass → bestätigt nur, wenn `ok=yes` und `status=available` → Confirm QR redemption mit einer gespeicherten stabilen Anforderungs‑ID vorliegen.
Nur `status=redeemed` plus `receipt_id` autorisieren die Eintritts‑Quittung Ihrer App. Speichern Sie die Pass-/Quittungsreferenz im Admission; geben Sie die Inhalte von QR nicht an die Analyse weiter.
Für `outcome_unknown` stellen Sie dieselbe Anfrage mit demselben Benutzer, derselben Umgebung und demselben QR-Pass wieder her; erzeugen Sie niemals eine neue Bestätigungs-ID. Behandeln Sie die Zustände expired und revoked sowie einen bereits verwendeten Pass als unterschiedliche Ergebnisse.
Geplant. Scannen und Prüfen verwenden den Pass nicht; nur die explizite Bestätigung tut es.
Lösen Sie einen kurzlebigen Vorteil einmalig an einem Partner‑Schalter ein
Ein Partner benötigt ein bestätigtes Ergebnis (verwendet/nicht verwendet) anstelle des Vertrauens auf ein QR‑Bild oder eine Bildschirmanimation.
`label=coupon`; der Benefit‑Datensatz der App definiert die Berechtigung und ein kurzes Gültigkeitsfenster vor einer autorisierten Ausgabefunktion.
Geben Sie einen Pass nur nach der Berechtigungsprüfung Ihrer App aus. Am Schalter zeigt Check QR pass die Verfügbarkeit, ohne ihn zu verbrauchen. Nachdem das Personal die Bereitstellung der Leistung bestätigt hat, führen Sie Confirm QR redemption aus.
Ihr Benefit‑Datensatz kann `receipt_id` und die bestätigte Einlösezeit nach `status=redeemed` speichern. Das Plugin verwaltet den Pass‑Status; Ihre App verwaltet den Vorteil und die Kundenbeziehung.
Wenn ein Vorteil vor der Nutzung storniert wird, kann derselbe autorisierte Aussteller Revoke QR pass mit seinem `pass_id` durchführen. Kündigen Sie keine Rückerstattung oder erfolgreiche Einlösung ausschließlich anhand von `ok=yes` an.
Geplant. Scannen und Prüfen verwenden den Pass nicht; nur die explizite Bestätigung tut es.
Bestätigen Sie eine Abholung von Ausrüstung oder Bestellung am selben Tag
Ein Personal‑Workflow muss das Scannen einer Sammlungsreferenz vom tatsächlichen Übergabevorgang eines Artikels unterscheiden.
Der von Ihrer App verwaltete Collection‑Datensatz speichert die Autorisierung, das beabsichtigte Element und separate stabile Ausstellungs‑/Einlöse‑Anforderungs‑IDs; verwenden Sie einen kurzlebigen `label=access`‑Pass.
Nachdem Ihre App die Sammlung autorisiert hat, Issue QR pass. Das Personal scannt und prüft, inspiziert die passende Collection in Ihrer App und bestätigt anschließend ausdrücklich die Übergabe sowie Confirm QR redemption.
Erst nach einer bestätigten `redeemed`‑Quittung sollte Ihr Workflow die Sammlung auf übergeben setzen. Behalten Sie `receipt_id` als Verknüpfung zum Pass‑Ergebnis.
Ein wiederholter Scan kann already_used zurückgeben; zeigen Sie den bestehenden App‑Datensatz anstatt ein weiteres Element zu übergeben. Stellen Sie eine unklare Bestätigung mit derselben ID und denselben Eingaben wieder her.
Geplant. Scannen und Prüfen verwenden den Pass nicht; nur die explizite Bestätigung tut es.
Was jetzt funktioniert
Private Beta. Der aktuelle Scanner verfügt über Kamera‑ und Berechtigungskontrollen. Das Erstellen, Prüfen und Bestätigen von Einmal‑Pässen ist geplant und noch nicht in Ihrer App einsatzbereit.
Workflow erstellen
Geplant
Geplanter Workflow. In der aktuellen Beta noch nicht verfügbar.
Diese Beispiele verwenden App‑Datensätze wie Lesson, Message und Order. Ersetzen Sie sie durch Ihre eigenen Datentypen und Elementnamen. Beispiel‑Medienadressen müssen durch Ihre eigenen Dateien ersetzt werden.
Geplant: ein autorisierter Mitarbeitender verwendet Issue QR pass für einen Eintritt oder Order. Beispiel: label=event, ttl_seconds=900, environment=development. Bewahren Sie ein stabiles request_id für dieses Anliegen auf und speichern Sie pass_id zusammen mit dem Datensatz.
Zeigen Sie das zurückgegebene QR dem vorgesehenen Empfänger. Das Personal scannt es. Im geplanten Pass‑Workflow verwenden Sie workflow_mode=yes und lesen scanned_pass_token nach pass_scanned. Diese Pass‑Workflow‑Einstellungen stehen im aktuellen Scanner nicht zur Verfügung.
Führen Sie Check QR pass mit pass_token = QR Scanner's scanned_pass_token aus. Es prüft, ohne den Pass zu verwenden. Für status=available zeigen Sie die passende Bestellung oder Eintrittsdetails an, damit das Personal sie prüfen kann.
Nur ein separater Bestätigen‑Button führt Confirm QR redemption mit demselben pass_token, einem stabilen request_id und confirm=yes aus. Bei status=redeemed speichern Sie receipt_id und markieren die entsprechende Bestellung oder den Eintrag als abgeschlossen.
already_used, expired, revoked oder invalid bedeutet, die Bestellung nicht zu gewähren oder zu übergeben. Ein Scan oder ein erfolgreicher Check allein schließt die Transaktion niemals ab.
Einmal konfigurieren
Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt in BestPlugins → Dashboard → Plugins. Wählen Sie Xodera QR Passes Native, kopieren Sie dessen Schlüssel und öffnen Sie anschließend Bubble → Plugins → Xodera QR Passes Native, um ihn in project_api_key einzufügen. Speichern Sie einmal; verwenden Sie dann die untenstehenden Aktionen. Jeder Plugin in jedem Projekt hat einen eigenen Schlüssel.
Zum Scannen ist eine Kameraberechtigung erforderlich. Bei Einmal‑Pässen entscheiden Sie, wer Pässe erstellen und wer sie an der Tür oder am Abholpunkt prüfen darf. Normale Kunden benötigen keine Mitarbeiterrolle.
qr_issuer_permission_field
qr_pass_issuer · Name des Benutzer‑Ja/Nein‑Feldes, das Mitarbeiter kennzeichnet, die Pässe erstellen oder widerrufen dürfen. Beispiel/Standard: qr_pass_issuer. Trage hier den Feldnamen ein, nicht ja oder nein. Nur ein autorisierter Administrator sollte diese Berechtigung für einen Benutzer ändern.
qr_staff_permission_field
qr_staff · Name des Benutzers Ja/Nein‑Feld, das das Personal kennzeichnet, das prüfen und die Nutzung bestätigen darf. Beispiel/Standard: qr_staff. Ein Ticketinhaber benötigt diese Berechtigung nicht. Aus öffentlichen Anmelde‑ und Profilformularen herauslassen.
Einmal konfigurieren
- Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt bei BestPlugins → Dashboard → Plugins.
- Wählen Sie dieses Plugin aus und kopieren Sie dessen Projektschlüssel.
- Öffnen Sie Bubble → Plugins → Xodera QR Passes Native; fügen Sie den Schlüssel in project_api_key ein und speichern Sie.
- Fügen Sie das Element hinzu, wählen Sie Ihre App‑Daten und erstellen Sie den untenstehenden Workflow.
- Privater Beta‑Zugang nur vorerst. Öffentliche Installation und kostenpflichtige Aktivierung sind noch nicht verfügbar.
Installation und Abonnement
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.
Speichern Sie das Ergebnis in Ihrer App
Beispiel für Eintritt oder Abholung: Speichern Sie die zugehörige Bestellung/Ereignis, pass_id, expires_at und issue_request_id. Nach bestätigter Nutzung fügen Sie receipt_id, redeemed_at und den bestätigenden Mitarbeitenden hinzu. Markieren Sie den Datensatz nicht als abgeschlossen, wenn der Code nur gescannt oder geprüft wurde. Ein QR‑Code verifiziert die Identität einer Person nicht.
Fehler, Abbruch und Wiederherstellung
Wenn outcome_unknown=yes, behalten Sie denselben Pass, request_id und die Eingaben bei einer erneuten Ergebnisprüfung. Erstellen Sie keine neue Bestätigung. already_used, expired und revoked sind endgültige Geschäftsergebnisse. Bei verweigerter Berechtigung bitten Sie einen autorisierten Administrator, die Rolle des Mitarbeitenden zu prüfen. Clear session setzt den Scanner zurück; ein abgeschlossener Vorgang kann nicht rückgängig gemacht werden.
Funktionen und Grenzen
Geplante Pässe sind einmalig nutzbar und 1–86400 Sekunden gültig; Standardwert: 900. Passtypen: access, event, coupon und membership. Eine Prüfung reserviert keinen Pass. Zur Nutzung eines Passes ist eine Internetverbindung erforderlich. Keine Zahlungsabwicklung, Identitätsprüfung oder wiederverwendbare, langfristig gültige Mitgliedskarte. Das Auslesen eines gewöhnlichen QR-Werts ist von der Prüfung eines Passes getrennt.
Einstellungen, Aktionen und Ergebnisse
Verwenden Sie diese Namen in Bubble. Geplante Funktionen sind separat gekennzeichnet.
Verfügbare Beta‑Einstellungen
Elementeinstellungen
disabled · yes/nois_active · yes/noui_text_json · textlanguage · textZustände
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/noEreignisse
scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_errorAktionen und deren Eingaben
Clear sessionElementeinstellungen · 5
Geplanter Workflow. In der aktuellen Beta noch nicht verfügbar.
disabledyes/no · Standard: false- Beispielwert
no - Beispiel Bubble Ausdruck
GuideHost's is_busy (your yes/no custom state) - Deaktivieren Sie das Element, solange Ihre App beschäftigt ist oder diese Aktion nicht verfügbar ist.
is_activeyes/no · Standard: true- Beispielwert
yes - Beispiel Bubble Ausdruck
GuideHost's view_is_active (your yes/no custom state) - Setzen Sie ja, solange diese Ansicht geöffnet ist. Setzen Sie nein beim Verlassen, damit die Wiedergabe oder die aktuelle Arbeit gestoppt werden kann.
ui_text_jsontext · Standard: "{}"- Beispielwert
{} - Beispiel Bubble Ausdruck
App Settings' player_labels_json (supported keys only) - Optionales JSON mit unterstützten Schaltflächenbeschriftungen. Leer lassen, um den integrierten Text zu verwenden.
languagetext · Standard: "auto"- Beispielwert
uk - Beispiel Bubble Ausdruck
Current User's preferred_language - Setzen Sie language=auto, um einer unterstützten Geräte‑ oder Browsersprache zu folgen. Geben Sie einen unterstützten Sprachcode ein, um ihn ausdrücklich auszuwählen.
workflow_modeyes/no · Standard: false- Beispielwert
yes - Beispiel Bubble Ausdruck
App Settings' use_qr_business_actions - Geplant: den gescannten QR‑Wert von Check QR pass verwenden zu lassen. Allein das Scannen bestätigt weder den Eintritt noch die Abholung.
Aktionen und deren Eingaben · 5
Geplanter Workflow. In der aktuellen Beta noch nicht verfügbar.
Clear session
Keine Aktionsparameter
Issue QR pass
environmenttext · Standard: "development"- Beispielwert
development - Beispiel Bubble Ausdruck
App Settings' selected_environment - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
request_idtext · Standard: —- Beispielwert
pickup-123-issue-v1 - Beispiel Bubble Ausdruck
Current Admission's stable_request_id - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
labeltext · Standard: "access"- Beispielwert
event - Beispiel Bubble Ausdruck
Selected Admission's pass_label - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
ttl_secondsnumber · Standard: 900- Beispielwert
900 - Beispiel Bubble Ausdruck
Event Settings' pass_ttl_seconds - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Rückgaben
pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/noCheck QR pass
environmenttext · Standard: "development"- Beispielwert
development - Beispiel Bubble Ausdruck
App Settings' selected_environment - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
pass_tokentext · Standard: —- Beispielwert
<opaque token returned by Issue / camera scan> - Beispiel Bubble Ausdruck
QR Pass Scanner's scanned_pass_token (capture before Check) - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Rückgaben
pass_label · textexpires_at · textConfirm QR redemption
environmenttext · Standard: "development"- Beispielwert
development - Beispiel Bubble Ausdruck
App Settings' selected_environment - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
pass_tokentext · Standard: —- Beispielwert
<opaque token returned by Issue / camera scan> - Beispiel Bubble Ausdruck
QR Pass Scanner's scanned_pass_token (capture before Check) - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
request_idtext · Standard: —- Beispielwert
pickup-123-redeem-v1 - Beispiel Bubble Ausdruck
Current Admission's stable_redemption_request_id - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
confirmyes/no · Standard: false- Beispielwert
yes — explicit confirmation only - Beispiel Bubble Ausdruck
Confirm Checkbox is checked - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Rückgaben
pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/noRevoke QR pass
environmenttext · Standard: "development"- Beispielwert
development - Beispiel Bubble Ausdruck
App Settings' selected_environment - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
pass_idtext · Standard: —- Beispielwert
<pass_id returned by Issue> - Beispiel Bubble Ausdruck
Selected Admission's pass_id - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Rückgaben
pass_id · textrevoked · yes/noZustände und Ereignisse
Geplanter Workflow. In der aktuellen Beta noch nicht verfügbar.
Zustände
scanner_status · textAktuelles Ergebnis dieser Aktion. Verwende das passende Abschlussereignis, bevor du den Erfolg speicherst. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded
server_status · textAktuelles Ergebnis dieser Aktion. Verwende das passende Abschlussereignis, bevor du den Erfolg speicherst. empty,available,redeemed,already_used,expired,revoked
pass_id · textKennzeichen für dieses Element oder diese Aktion. Bewahren Sie es zusammen mit dem zugehörigen App‑Datensatz auf. Verwenden Sie dieselbe Anforderungs‑Kennung, wenn Sie ein unsicheres Ergebnis erneut versuchen.
pass_label · textAktueller Wert für das ausgewählte Element. Nach dem zugehörigen Ereignis lesen. empty,access,event,coupon,membership
receipt_id · textKennzeichen für dieses Element oder diese Aktion. Bewahren Sie es zusammen mit dem zugehörigen App‑Datensatz auf. Verwenden Sie dieselbe Anforderungs‑Kennung, wenn Sie ein unsicheres Ergebnis erneut versuchen.
error_code · textFehlermeldung für die letzte Aktion. Zeigen Sie eine hilfreiche Nachricht an und bieten Sie den entsprechenden Wiederholungsversuch an.
is_busy · yes/noDie Arbeit ist noch im Gange. Bitte warten Sie, bevor Sie eine weitere Aktion starten.
is_scanning · yes/noAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
torch_enabled · yes/noAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
scan_source · textAktueller Wert für das ausgewählte Element. Lies ihn nach dem zugehörigen Ereignis. empty,camera,fixture
pending_redemption · yes/noAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
scanned_pass_token · textAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
Ereignisse
scanner_startedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
scanner_pausedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
scanner_cancelledWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
permission_deniedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
pass_scannedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
validation_startedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
validation_completedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
redemption_startedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
pass_redeemedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
redemption_rejectedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
redemption_pendingWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
fixture_decodedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
qr_errorWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
Fragen, die Entwickler stellen
Was bedeuten die beiden Berechtigungseinstellungen?
Name des Benutzer‑Ja/Nein‑Feldes, das Mitarbeitende kennzeichnet, die Berechtigungen zum Erstellen oder Widerrufen von Pässen haben. Beispiel/Standard: qr_pass_issuer. Tragen Sie hier den Feldnamen ein, nicht ja oder nein. Nur ein autorisierter Administrator sollte diese Berechtigung für einen Benutzer ändern. Name des Benutzer‑Ja/Nein‑Feldes, das Personal kennzeichnet, das Berechtigungen zum Prüfen und Bestätigen der Nutzung hat. Beispiel/Standard: qr_staff. Ein Ticketinhaber benötigt diese Berechtigung nicht. Halten Sie es aus öffentlichen Anmelde‑ und Profilformularen heraus.
Kann derselbe Mitarbeitende Pässe erstellen und prüfen?
Ja, wenn ein autorisierter Administrator dem Mitarbeitenden beide Berechtigungen erteilt. Dafür ist kein weiterer Projektschlüssel erforderlich. Kunden benötigen normalerweise keine der beiden Berechtigungen. Lassen Sie Nutzer diese Berechtigungen nicht selbst zuweisen.
Warum nach dem Scan prüfen?
Der Scan liest den Code. Check fragt, ob der Pass verfügbar ist, ohne ihn zu verwenden. Das Personal kann die Bestellung zuerst prüfen. Nur die separate Confirm QR redemption‑Aktion verwendet den Pass einmal.
Wie funktioniert das Abonnement?
Geplante Preisgestaltung: Die Installation des Plugins in Bubble ist kostenlos. Der Zugriff auf BestPlugins ist ein separates Abonnement für jedes Plugin in jedem Bubble App‑Projekt: 7 Tage kostenlos, dann US$1.50 pro Monat. Development und Live sind enthalten. Es gibt keine feste Obergrenze für die Anzahl der Vorgänge; Dateigrößen‑ und Funktionslimits gelten weiterhin. Der Checkout ist noch nicht geöffnet. Der Aktivierungsbildschirm zeigt das erste Rechnungsdatum und die Kündigungsbedingungen.
Verwandte Anleitungen
Marketplace‑Veröffentlichung ausstehend
Forum‑Anleitung nicht veröffentlicht
Für Hilfe geben Sie an, welches Plugin und Gerät Sie verwenden, welche Aktion Sie versucht haben und was passiert ist. Verwenden Sie ein Beispiel ohne persönliche Daten. Teilen Sie niemals Ihren Schlüssel oder private Dateien.