
Xodera Plugins · Bubble Native
Xodera QR Passes Native
Maak eenmalige tickets, afhaalbevestigingen of coupons. Personeel scant de code, controleert het resultaat, bekijkt een voorbeeld van de bestelling en bevestigt het gebruik pas wanneer klaar.
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.
Documentatie beoordeeld 6 november 2026
Praktische voorbeelden
Eenmalige toegang voor een evenement op dezelfde dag.
Een screenshot van een gewone QR-waarde kan anders bij meer dan één ingang worden hergebruikt.
Uw app slaat een Toegangrecord en een stabiele uitgifte `request_id` op; gebruik een samengestelde `label=event` en een `ttl_seconds` binnen het 1–86400-secundaire contract.
Een geautoriseerde uitgever voert Issue QR pass uit en levert de teruggestuurde QR privé af. Personeel scant → Check QR pass → bevestigt alleen als `ok=yes` en `status=available` → Confirm QR redemption met een opgeslagen stabiele aanvraag‑ID.
Alleen `status=redeemed` plus `receipt_id` autoriseren het toelatingsbewijs van uw app. Sla de pas/bonreferentie op bij de Toegang; maak de inhoud van QR niet bloot aan analytics.
Voor `outcome_unknown`, herstel dezelfde aanvraag met identieke gebruiker/omgeving/pas; genereer nooit een nieuwe bevestigings‑ID. Verwerk expired, revoked en reeds gebruikte toestanden als afzonderlijke uitkomsten.
Gepland. Scannen en controleren gebruiken de pas niet; alleen expliciete bevestiging doet dat.
Verzilveren van een kortdurende voordeel één keer bij een partnerbalie.
Een partner heeft een bevestigd gebruikt/ongebruikt resultaat nodig in plaats van te vertrouwen op een QR‑afbeelding of een schermanimatie.
`label=coupon`; het voordeelrecord van de app definieert de geschiktheid en een kort geldigheidsvenster vóór een geautoriseerde uitgifte‑actie.
Geef een pas alleen uit na de geschiktheidscontrole van uw app. Aan de balie toont Check QR pass beschikbaarheid zonder deze te verbruiken. Nadat de medewerker de levering van de voorziening bevestigt, voer Confirm QR redemption uit.
Uw voordeelrecord kan `receipt_id` en de bevestigde inwisseltijd opslaan na `status=redeemed`. De plug‑in beheert de passtatus; uw app beheert het voordeel en de klantrelatie.
Als een voordeel wordt geannuleerd vóór gebruik, kan dezelfde geautoriseerde uitgever Revoke QR pass uitvoeren met zijn `pass_id`. Kondig geen terugbetaling of succesvolle inwisseling alleen op basis van `ok=yes` aan.
Gepland. Scannen en controleren gebruiken de pas niet; alleen expliciete bevestiging doet dat.
Bevestig een ophaal van apparatuur of bestelling op dezelfde dag.
Een personeelsworkflow moet het scannen van een verzamelingsreferentie onderscheiden van het daadwerkelijk overhandigen van een item.
Het door uw app beheerde Collectie‑record bewaart autorisatie, het beoogde item en afzonderlijke stabiele uitgifte‑/inlossings‑aanvraag‑ID’s; gebruik een kortlevende `label=access`‑pas.
Nadat uw app de collectie autoriseert, Issue QR pass. Personeel scant en controleert, inspecteert de overeenkomende Collectie in uw app, en bevestigt vervolgens expliciet de overdracht en Confirm QR redemption.
Alleen na een bevestigd `redeemed`‑ontvangst moet uw workflow de collectie op 'overhandigd' zetten. Houd `receipt_id` als de koppeling naar de pasuitkomst.
Een herhaalde scan kan already_used teruggeven; toon het bestaande app‑record in plaats van een ander item over te dragen. Herstel een onzekere bevestiging met dezelfde ID en invoer.
Gepland. Scannen en controleren gebruiken de pas niet; alleen expliciete bevestiging doet dat.
Wat nu werkt
Privé‑bèta. De huidige scanner heeft camera‑ en toestemmingsinstellingen. Het aanmaken, controleren en bevestigen van eenmalige passen is gepland en nog niet klaar voor gebruik in uw app.
Bouw de workflow
Gepland
Gepland workflow. Nog niet beschikbaar in de huidige bèta.
Deze voorbeelden gebruiken app‑records zoals Lesson, Message en Order. Vervang ze door uw eigen gegevenstypen en elementnamen. Voorbeeld‑mediapaden moeten worden vervangen door uw eigen bestanden.
Gepland: een geautoriseerde medewerker gebruikt Issue QR pass voor een Toegang of Order. Voorbeeld: label=event, ttl_seconds=900, environment=development. Houd een stabiele request_id voor die uitgave en sla pass_id op met het record.
Toon de teruggegeven QR aan de beoogde houder. Personeel scant deze. In de geplande pasworkflow gebruikt u workflow_mode=yes en leest u scanned_pass_token na pass_scanned. Deze pas‑workflowinstellingen zijn niet beschikbaar in de huidige scanner.
Voer Check QR pass uit met pass_token = QR Scanner's scanned_pass_token. Het controleert zonder de pas te gebruiken. Voor status=available, toon de bijbehorende bestelling‑ of invoerdetails zodat personeel ze kan beoordelen.
Alleen een aparte Bevestigen‑knop voert Confirm QR redemption uit met dezelfde pass_token, een stabiele request_id en confirm=yes. Op status=redeemed slaat u receipt_id op en markeert u die bestelling of invoer als voltooid.
already_used, expired, revoked of invalid betekent dat de bestelling niet mag worden toegelaten of overhandigd. Een scan of een succesvolle Controle alleen voltooit de transactie nooit.
Eenmalig configureren
Maak of kies uw Bubble app‑project in BestPlugins → Dashboard → Plugins. Kies Xodera QR Passes Native, kopieer de sleutel, open vervolgens Bubble → Plugins → Xodera QR Passes Native en plak deze in project_api_key. Sla één keer op; gebruik daarna de acties hieronder. Elke plug‑in in elk project heeft zijn eigen sleutel.
Scannen vereist cameratoestemming. Voor eenmalige passen bepaalt u wie passen mag aanmaken en wie ze mag controleren bij de deur of afhaalpunt. Gewone klanten hebben geen personeelsrol nodig.
qr_issuer_permission_field
qr_pass_issuer · Naam van het ja/nee‑veld voor gebruikers dat aangeeft welke medewerkers passen mogen aanmaken of intrekken. Voorbeeld/standaard: qr_pass_issuer. Voer hier de veldnaam in, niet ja of nee. Alleen een geautoriseerde beheerder mag die toestemming voor een gebruiker wijzigen.
qr_staff_permission_field
qr_staff · Naam van het ja/nee‑veld voor gebruikers dat aangeeft welk personeel mag controleren en gebruik bevestigen. Voorbeeld/standaard: qr_staff. Een tickethouder heeft deze toestemming niet nodig. Houd het buiten openbare aanmeld‑ en profielformulieren.
Eenmalig configureren
- Maak of kies uw Bubble app‑project op BestPlugins → Dashboard → Plugins.
- Kies deze plug‑in en kopieer de projectsleutel.
- Open Bubble → Plugins → Xodera QR Passes Native; plak de sleutel in project_api_key en sla op.
- Voeg het element toe, kies uw app‑gegevens en bouw de workflow hieronder.
- Privé‑bèta‑toegang voorlopig alleen. Publieke installatie en betaalde activering zijn nog niet beschikbaar.
Installatie en 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.
Sla het resultaat op in je app
Voorbeeld Toegang of Afhalen: sla de gerelateerde bestelling/evenement, pass_id, expires_at en issue_request_id op. Na bevestigd gebruik, voeg receipt_id, redeemed_at en de medewerker die bevestigde toe. Markeer het record niet als voltooid wanneer de code alleen gescand of gecontroleerd is. Een QR‑code verifieert geen identiteit van een persoon.
Fout, annulering en herstel
Als outcome_unknown=yes, behoud dezelfde pas, request_id en invoer bij het opnieuw controleren van het resultaat. Maak geen nieuwe bevestiging aan. already_used, expired en revoked zijn definitieve bedrijfsresultaten. Als toestemming wordt geweigerd, vraag een geautoriseerde beheerder om de rol van de medewerker te beoordelen. Clear session reset de scanner; het kan een voltooid gebruik niet ongedaan maken.
Mogelijkheden en limieten
Geplande passen zijn eenmalig, met een levensduur van 1–86400 seconden; standaard 900. Passtypen: access, event, coupon en membership. Controleren reserveert geen pas. Internettoegang is vereist voor het gebruik van de pas. Geen betalingsverwerking, identiteitscontrole of herbruikbare langetermijnlidmaatschapskaart. Het lezen van een gewone QR‑waarde is gescheiden van het controleren van een pas.
Instellingen, acties en resultaten
Gebruik deze namen in Bubble. Geplande functies worden apart gemarkeerd.
Beschikbare bètainstellingen
Elementinstellingen
disabled · yes/nois_active · yes/noui_text_json · textlanguage · textStatussen
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/noEvenementen
scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_errorActies en hun invoer
Clear sessionElementinstellingen · 5
Gepland workflow. Nog niet beschikbaar in de huidige bèta.
disabledyes/no · Standaard: false- Voorbeeldwaarde
no - Voorbeeld Bubble-expressie
GuideHost's is_busy (your yes/no custom state) - Schakel het element uit terwijl uw app bezig is of deze actie niet beschikbaar is.
is_activeyes/no · Standaard: true- Voorbeeldwaarde
yes - Voorbeeld Bubble-expressie
GuideHost's view_is_active (your yes/no custom state) - Stel ja in zolang dit overzicht geopend is. Stel nee in bij verlaten, zodat afspelen of huidig werk kan stoppen.
ui_text_jsontext · Standaard: "{}"- Voorbeeldwaarde
{} - Voorbeeld Bubble-expressie
App Settings' player_labels_json (supported keys only) - Optionele JSON met ondersteunde knoplabels. Laat leeg om de ingebouwde tekst te gebruiken.
languagetext · Standaard: "auto"- Voorbeeldwaarde
uk - Voorbeeld Bubble-expressie
Current User's preferred_language - Stel language=auto in om een ondersteund apparaat of browsertaal te volgen. Voer een ondersteunde taalcodes in om deze expliciet te kiezen.
workflow_modeyes/no · Standaard: false- Voorbeeldwaarde
yes - Voorbeeld Bubble-expressie
App Settings' use_qr_business_actions - Gepland: sta toe dat de gescande QR‑waarde wordt gebruikt door Check QR pass. Alleen scannen bevestigt geen toegang of afhaling.
Acties en hun invoer · 5
Gepland workflow. Nog niet beschikbaar in de huidige bèta.
Clear session
Geen actieparameters
Issue QR pass
environmenttext · Standaard: "development"- Voorbeeldwaarde
development - Voorbeeld Bubble-expressie
App Settings' selected_environment - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
request_idtext · Standaard: —- Voorbeeldwaarde
pickup-123-issue-v1 - Voorbeeld Bubble-expressie
Current Admission's stable_request_id - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
labeltext · Standaard: "access"- Voorbeeldwaarde
event - Voorbeeld Bubble-expressie
Selected Admission's pass_label - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
ttl_secondsnumber · Standaard: 900- Voorbeeldwaarde
900 - Voorbeeld Bubble-expressie
Event Settings' pass_ttl_seconds - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Retouren
pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/noCheck QR pass
environmenttext · Standaard: "development"- Voorbeeldwaarde
development - Voorbeeld Bubble-expressie
App Settings' selected_environment - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
pass_tokentext · Standaard: —- Voorbeeldwaarde
<opaque token returned by Issue / camera scan> - Voorbeeld Bubble-expressie
QR Pass Scanner's scanned_pass_token (capture before Check) - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Retouren
pass_label · textexpires_at · textConfirm QR redemption
environmenttext · Standaard: "development"- Voorbeeldwaarde
development - Voorbeeld Bubble-expressie
App Settings' selected_environment - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
pass_tokentext · Standaard: —- Voorbeeldwaarde
<opaque token returned by Issue / camera scan> - Voorbeeld Bubble-expressie
QR Pass Scanner's scanned_pass_token (capture before Check) - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
request_idtext · Standaard: —- Voorbeeldwaarde
pickup-123-redeem-v1 - Voorbeeld Bubble-expressie
Current Admission's stable_redemption_request_id - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
confirmyes/no · Standaard: false- Voorbeeldwaarde
yes — explicit confirmation only - Voorbeeld Bubble-expressie
Confirm Checkbox is checked - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Retouren
pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/noRevoke QR pass
environmenttext · Standaard: "development"- Voorbeeldwaarde
development - Voorbeeld Bubble-expressie
App Settings' selected_environment - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
pass_idtext · Standaard: —- Voorbeeldwaarde
<pass_id returned by Issue> - Voorbeeld Bubble-expressie
Selected Admission's pass_id - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Retouren
pass_id · textrevoked · yes/noStatussen en gebeurtenissen
Gepland workflow. Nog niet beschikbaar in de huidige bèta.
Statussen
scanner_status · textHuidig resultaat van deze actie. Gebruik het overeenkomende voltooiings‑event vóór het opslaan van succes. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded
server_status · textHuidig resultaat van deze actie. Gebruik het overeenkomende voltooiings‑event vóór het opslaan van succes. empty,available,redeemed,already_used,expired,revoked
pass_id · textIdentificatie voor dit item of deze actie. Bewaar deze bij het bijbehorende app‑record. Gebruik dezelfde verzoek‑identificatie bij het opnieuw proberen van een onzeker resultaat.
pass_label · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde evenement. empty,access,event,coupon,membership
receipt_id · textIdentificatie voor dit item of deze actie. Bewaar deze bij het bijbehorende app‑record. Gebruik dezelfde verzoek‑identificatie bij het opnieuw proberen van een onzeker resultaat.
error_code · textFoutinformatie voor de laatste actie. Toon een nuttig bericht en bied de relevante herpoging aan.
is_busy · yes/noHet werk is nog bezig. Wacht voordat u een andere actie start.
is_scanning · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
torch_enabled · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
scan_source · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde evenement. empty,camera,fixture
pending_redemption · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
scanned_pass_token · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
Evenementen
scanner_startedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
scanner_pausedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
scanner_cancelledWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
permission_deniedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
pass_scannedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
validation_startedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
validation_completedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
redemption_startedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
pass_redeemedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
redemption_rejectedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
redemption_pendingWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
fixture_decodedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
qr_errorWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
Vragen die ontwikkelaars stellen
Wat betekenen de twee toestemmingsinstellingen?
Naam van het ja/nee‑veld van de gebruiker dat aangeeft welke medewerkers passen mogen aanmaken of intrekken. Voorbeeld/standaard: qr_pass_issuer. Plaats hier de veldnaam, niet ja of nee. Alleen een geautoriseerde beheerder mag die toestemming voor een gebruiker wijzigen. Naam van het ja/nee‑veld van de gebruiker dat aangeeft welke stafleden passen mogen controleren en gebruik bevestigen. Voorbeeld/standaard: qr_staff. Een tickethouder heeft deze toestemming niet nodig. Houd dit buiten openbare aanmeld‑ en profielformulieren.
Kan dezelfde medewerker passen aanmaken en controleren?
Ja, als een geautoriseerde beheerder die medewerker beide rechten geeft. Dit vereist geen extra projectsleutel. Klanten hebben normaal geen van beide rechten nodig. Laat gebruikers deze rechten niet aan zichzelf toewijzen.
Waarom Controle gebruiken na Scannen?
Scan leest de code. Check vraagt of de pas beschikbaar is zonder deze te gebruiken. Personeel kan de bestelling eerst bekijken. Alleen de aparte Confirm QR redemption-actie gebruikt de pas één keer.
Hoe werkt het abonnement?
Geplande prijsstelling: het installeren van de plugin in Bubble is gratis. BestPlugins-toegang is een afzonderlijk abonnement voor elke plugin in elk Bubble app‑project: 7 dagen gratis, daarna US$1.50 per maand. Development en Live zijn inbegrepen. Er is geen vaste limiet op het aantal bewerkingen; bestands‑grootte‑ en functielimieten blijven gelden. Afrekenen is nog niet geopend. Het activeringsscherm toont de eerste factuurdatum en annuleringsvoorwaarden.
Gerelateerde handleidingen
Marketplace release in afwachting
Forumgids niet geplaatst
Voor hulp, vertel ons welke plugin en welk apparaat u gebruikt, welke actie u probeerde en wat er gebeurde. Gebruik een voorbeeld zonder persoonlijke gegevens. Deel nooit uw sleutel of privé‑bestanden.