QR-scannerinterface. Eenmalige pasacties zijn gepland.
QR-scannerinterface. Eenmalige pasacties zijn gepland.
← Alle native gidsen

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Workflow‑diagram — geen appscreenshot

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
  1. Maak of kies uw Bubble app‑project op BestPlugins → Dashboard → Plugins.
  2. Kies deze plug‑in en kopieer de projectsleutel.
  3. Open Bubble → Plugins → Xodera QR Passes Native; plak de sleutel in project_api_key en sla op.
  4. Voeg het element toe, kies uw app‑gegevens en bouw de workflow hieronder.
  5. 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 · text

Statussen

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

Evenementen

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

Acties en hun invoer

Clear session
Elementinstellingen · 5

Gepland workflow. Nog niet beschikbaar in de huidige bèta.

disabledyes/no · Standaard: false
Voorbeeldwaardeno
Voorbeeld Bubble-expressieGuideHost'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
Voorbeeldwaardeyes
Voorbeeld Bubble-expressieGuideHost'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-expressieApp Settings' player_labels_json (supported keys only)
Optionele JSON met ondersteunde knoplabels. Laat leeg om de ingebouwde tekst te gebruiken.
languagetext · Standaard: "auto"
Voorbeeldwaardeuk
Voorbeeld Bubble-expressieCurrent 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
Voorbeeldwaardeyes
Voorbeeld Bubble-expressieApp 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"
Voorbeeldwaardedevelopment
Voorbeeld Bubble-expressieApp Settings' selected_environment
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
request_idtext · Standaard: —
Voorbeeldwaardepickup-123-issue-v1
Voorbeeld Bubble-expressieCurrent Admission's stable_request_id
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
labeltext · Standaard: "access"
Voorbeeldwaardeevent
Voorbeeld Bubble-expressieSelected Admission's pass_label
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
ttl_secondsnumber · Standaard: 900
Voorbeeldwaarde900
Voorbeeld Bubble-expressieEvent 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/no
Check QR pass
environmenttext · Standaard: "development"
Voorbeeldwaardedevelopment
Voorbeeld Bubble-expressieApp 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-expressieQR 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 · text
Confirm QR redemption
environmenttext · Standaard: "development"
Voorbeeldwaardedevelopment
Voorbeeld Bubble-expressieApp 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-expressieQR 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: —
Voorbeeldwaardepickup-123-redeem-v1
Voorbeeld Bubble-expressieCurrent Admission's stable_redemption_request_id
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
confirmyes/no · Standaard: false
Voorbeeldwaardeyes — explicit confirmation only
Voorbeeld Bubble-expressieConfirm 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/no
Revoke QR pass
environmenttext · Standaard: "development"
Voorbeeldwaardedevelopment
Voorbeeld Bubble-expressieApp 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-expressieSelected Admission's pass_id
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.

Retouren

pass_id · textrevoked · yes/no
Statussen en gebeurtenissen

Gepland workflow. Nog niet beschikbaar in de huidige bèta.

Statussen

scanner_status · text

Huidig 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 · text

Huidig resultaat van deze actie. Gebruik het overeenkomende voltooiings‑event vóór het opslaan van succes. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Identificatie 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 · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde evenement. empty,access,event,coupon,membership

receipt_id · text

Identificatie 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 · text

Foutinformatie voor de laatste actie. Toon een nuttig bericht en bied de relevante herpoging aan.

is_busy · yes/no

Het werk is nog bezig. Wacht voordat u een andere actie start.

is_scanning · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

torch_enabled · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

scan_source · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde evenement. empty,camera,fixture

pending_redemption · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

scanned_pass_token · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

Evenementen

scanner_started

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

scanner_paused

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

scanner_cancelled

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

permission_denied

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

pass_scanned

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

validation_started

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

validation_completed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

redemption_started

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

pass_redeemed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

redemption_rejected

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

redemption_pending

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

fixture_decoded

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

qr_error

Wanneer 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.