
Xodera Plugins · Bubble Native
Xodera QR Passes Native
Bou eenmalige kaartjies, afhaalbevestigings of koepons. Personeel skandeer die kode, kontroleer die resultaat, voorskou die bestelling en bevestig gebruik slegs wanneer gereed.
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.
Dokumentasie hersien 6 November 2026
Praktiese voorbeelde
Eenmalige toelating vir ’n dieselfde-dag geleentheid
’n Skermskoot van ’n gewone QR waarde kan andersins by meer as een ingang hergebruik word.
U app stoor 'n Toelatingsrekord en 'n stabiele `request_id` vir die uitreiking; gebruik gekureerde `label=event` en 'n `ttl_seconds` binne die 1–86400-sekond kontrak.
'n Gemagtigde uitreiker voer Issue QR pass uit en lewer die teruggegee QR privaat af. Personeel skandeer → Check QR pass → bevestig slegs as `ok=yes` en `status=available` → Confirm QR redemption met 'n gestoorde stabiele versoek-ID.
Slegs `status=redeemed` plus `receipt_id` mag u app se toelatingsbewys. Stoor die pas/bewysverwysing op die Toelating; moenie QR-inhoud aan analise blootstel nie.
Vir `outcome_unknown`, herstel dieselfde versoek met identiese gebruiker/omgewing/pas; genereer nooit 'n nuwe bevestigings-ID nie. Hanteer expired, revoked en reeds-gebruikte state as afsonderlike uitkomste.
Beplan. Skandering en kontrole verbruik nie die pas nie; slegs eksplisiete bevestiging verbruik dit.
Gebruik 'n kortlewende voordeel een keer by 'n vennoot-toonbank.
'n Vennoot benodig 'n bevestigde gebruik/ongebruik resultaat in plaas van om op 'n QR-afbeelding of skermanimasie te vertrou.
`label=coupon`; die app se Voordeelrekord definieer geskiktheid en 'n kort geldigheidsvenster voordat 'n gemagtigde uitreiking-aksie plaasvind.
Reik 'n pas slegs uit na u app se geskiktheidskontrole. By die toonbank toon Check QR pass beskikbaarheid sonder om dit te verbruik. Nadat die personeel lewering van die voordeel bevestig, voer Confirm QR redemption uit.
U Voordeelrekord kan `receipt_id` en die bevestigde gebruikstyd na `status=redeemed` stoor. Die inprop bestuur die passtatus; u app bestuur die voordeel en klantverhouding.
As 'n voordeel gekanselleer word voor gebruik, kan dieselfde gemagtigde uitreiker Revoke QR pass gebruik met sy `pass_id`. Moenie ’n terugbetaling of suksesvolle gebruik op grond van `ok=yes` alleen aankondig nie.
Beplan. Skandering en kontrole verbruik nie die pas nie; slegs eksplisiete bevestiging verbruik dit.
Bevestig 'n dieselfde-dag toerusting- of bestellingsafhaling.
'n Personeel-werkstroom moet onderskei tussen die skandering van 'n afhaalverwysing en die werklike oorhandiging van 'n item.
U app se besitde Versamelingrekord behou magtiging, die beoogde item en afsonderlike stabiele uitreiking/verlossingsversoek-ID's; gebruik 'n kortlewende `label=access`-pas.
Nadat u app die afhaling magtig, Issue QR pass. Personeel skandeer en kontroleer, inspekteer die ooreenstemmende Versameling in u app, en bevestig dan eksplisiet die oorhandiging en Confirm QR redemption.
Slegs na 'n bevestigde `redeemed`-ontvangs moet u werkstroom die Versameling op 'oorhandig' stel. Hou `receipt_id` as die skakel na die pasuitkoms.
'n Herhaalde skandering kan already_used teruggee; vertoon die bestaande app-rekord in plaas van om nog 'n item oor te hand. Herstel 'n onseker bevestiging met dieselfde ID en insette.
Beplan. Skandering en kontrole verbruik nie die pas nie; slegs eksplisiete bevestiging verbruik dit.
Wat nou werk
Privaat beta. Die huidige skandeerder het kamera‑ en toestemming‑kontroles. Die skep, kontroleer en bevestig van eenmalige passe is beplan en nog nie gereed om in jou app gebruik te word nie.
Bou die werkvloei
Beplan
Beplande werkstroom. Nog nie beskikbaar in die huidige beta nie.
Hierdie voorbeelde gebruik app-rekords soos Lesson, Message en Order. Vervang dit met jou eie datatipes en elementname. Voorbeeldmedia-adresse moet met jou eie lêers vervang word.
Beplan: ’n gemagtigde werknemer gebruik Issue QR pass vir ’n Toelating of Order. Voorbeeld: label=event, ttl_seconds=900, environment=development. Behouw ’n stabiele request_id vir daardie uitreiking en stoor pass_id saam met die rekord.
Wys die teruggegee QR aan die beoogde houer. Personeel skandeer dit. In die beplande paswerkstroom, gebruik workflow_mode=yes en lees scanned_pass_token na pass_scanned. Hierdie paswerkstroominstellings is nie beskikbaar in die huidige skandeerder nie.
Voer Check QR pass uit met pass_token = QR Scanner's scanned_pass_token. Dit kontroleer sonder om die pas te verbruik. Vir status=available, wys die ooreenstemmende bestelling of inskrywingdetails sodat personeel dit kan hersien.
Slegs ’n aparte Bevestig-knoppie voer Confirm QR redemption uit met dieselfde pass_token, ’n stabiele request_id en confirm=yes. Op status=redeemed, stoor receipt_id en merk daardie bestelling of inskrywing voltooi.
already_used, expired, revoked of invalid beteken nie toelating of oordrag van die bestelling nie. ’n Skandering of ’n suksesvolle Kontrole alleen voltooi die transaksie nooit.
Stel een keer op
Skep of kies jou Bubble-appprojek in BestPlugins → Dashboard → Plugins. Kies Xodera QR Passes Native, kopieer die sleutel, open dan Bubble → Plugins → Xodera QR Passes Native en plak dit in project_api_key. Stoor een keer; gebruik dan die aksies hieronder. Elke inprop in elke projek het sy eie sleutel.
Skandering benodig kamera toestemming. Vir eenmalige passe, bepaal wie passe kan skep en wie dit by die deur of afhaalpunt kan kontroleer. Gewone kliënte het nie personeelrol nodig nie.
qr_issuer_permission_field
qr_pass_issuer · Naam van die gebruiker ja/nee-veld wat werknemers merk wat toegelaat word om paspoorte te skep of te herroep. Voorbeeld/verstek: qr_pass_issuer. Plaas hier die veldnaam, nie ja of nee nie. Slegs 'n gemagtigde administrateur moet daardie toestemming op 'n gebruiker verander.
qr_staff_permission_field
qr_staff · Naam van die gebruiker ja/nee-veld wat personeel merk wat toegelaat word om gebruik te kontroleer en te bevestig. Voorbeeld/verstek: qr_staff. 'n Kaarthouer hoef nie hierdie toestemming te hê nie. Hou dit uit openbare registrasie- en profielvorms.
Stel een keer op
- Skep of kies jou Bubble-appprojek by BestPlugins → Dashboard → Plugins.
- Kies hierdie inprop en kopieer die projek-sleutel.
- Open Bubble → Plugins → Xodera QR Passes Native; plak die sleutel in project_api_key en stoor.
- Voeg die element by, kies jou app-data en bou die werkstroom hieronder.
- Privaat beta-toegang slegs vir nou. Publieke installasie en betaalde aktivering is nog nie beskikbaar nie.
Installasie en intekening
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.
Stoor die resultaat in jou app
Voorbeeld Toelating of Afhaal: stoor die verwante bestelling/geleentheid, pass_id, expires_at en issue_request_id. Na bevestigde gebruik, voeg receipt_id, redeemed_at en die werknemer wat bevestig het, by. Merk die rekord nie as voltooi nie wanneer die kode net geskande of nagegaan is. ’n QR kode verifieer nie ’n persoon se identiteit nie.
Mislukking, kanselleer en herstel
As outcome_unknown=yes, behou dieselfde pas, request_id en insette wanneer die resultaat weer gekontroleer word. Skep nie ’n nuwe bevestiging nie. already_used, expired en revoked is finale besigheidsresultate. As toestemming geweier word, vra ’n gemagtigde administrateur om die werknemer se rol te hersien. Clear session stel die skandeerder terug; dit kan nie ’n voltooi gebruik ongedaan maak nie.
Vermoeëns en beperkings
Beplande passe is enkelgebruik, met ’n leeftyd van 1–86400 sekondes; verstek 900. Pas tipes: access, event, coupon en membership. Kontroleer reserveer nie ’n pas nie. Internettoegang is benodig vir pasgebruik. Geen betalingsverwerking, identiteitstoets of herbruikbare langtermyn lidmaatskapkaart nie. Die lees van ’n gewone QR waarde is geskei van die kontrole van ’n pas.
Instellings, aksies en resultate
Gebruik hierdie name in Bubble. Beplande funksies word afsonderlik gemerk.
Beskikbare beta-instellings
Elementinstellings
disabled · yes/nois_active · yes/noui_text_json · textlanguage · textToestande
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/noGebeurtenisse
scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_errorAksies en hul insette
Clear sessionElementinstellings · 5
Beplande werkstroom. Nog nie beskikbaar in die huidige beta nie.
disabledyes/no · Verstek: false- Voorbeeldwaarde
no - Voorbeeld Bubble-uitdrukking
GuideHost's is_busy (your yes/no custom state) - Deaktiveer die element terwyl jou app besig is of hierdie aksie nie beskikbaar is nie.
is_activeyes/no · Verstek: true- Voorbeeldwaarde
yes - Voorbeeld Bubble-uitdrukking
GuideHost's view_is_active (your yes/no custom state) - Stel ja wanneer hierdie aansig oop is. Stel nee wanneer dit verlaat word, sodat terugspeel of huidige werk kan stop.
ui_text_jsontext · Verstek: "{}"- Voorbeeldwaarde
{} - Voorbeeld Bubble-uitdrukking
App Settings' player_labels_json (supported keys only) - Opsioneel JSON met ondersteunde knoppie-etikette. Laat leeg om die ingeboude teks te gebruik.
languagetext · Verstek: "auto"- Voorbeeldwaarde
uk - Voorbeeld Bubble-uitdrukking
Current User's preferred_language - Stel language=auto in om ’n ondersteunde toestel of blaaier se taal te volg. Voer ’n ondersteunde taalkode in om dit eksplisiet te kies.
workflow_modeyes/no · Verstek: false- Voorbeeldwaarde
yes - Voorbeeld Bubble-uitdrukking
App Settings' use_qr_business_actions - Beplan: laat die geskandeerde QR-waarde deur Check QR pass gebruik toe. Skandering alleen bevestig nie toegang of afhaling nie.
Aksies en hul insette · 5
Beplande werkstroom. Nog nie beskikbaar in die huidige beta nie.
Clear session
Geen aksie‑parameters nie
Issue QR pass
environmenttext · Verstek: "development"- Voorbeeldwaarde
development - Voorbeeld Bubble-uitdrukking
App Settings' selected_environment - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
request_idtext · Verstek: —- Voorbeeldwaarde
pickup-123-issue-v1 - Voorbeeld Bubble-uitdrukking
Current Admission's stable_request_id - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
labeltext · Verstek: "access"- Voorbeeldwaarde
event - Voorbeeld Bubble-uitdrukking
Selected Admission's pass_label - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
ttl_secondsnumber · Verstek: 900- Voorbeeldwaarde
900 - Voorbeeld Bubble-uitdrukking
Event Settings' pass_ttl_seconds - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
Teruggegewe waardes
pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/noCheck QR pass
environmenttext · Verstek: "development"- Voorbeeldwaarde
development - Voorbeeld Bubble-uitdrukking
App Settings' selected_environment - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
pass_tokentext · Verstek: —- Voorbeeldwaarde
<opaque token returned by Issue / camera scan> - Voorbeeld Bubble-uitdrukking
QR Pass Scanner's scanned_pass_token (capture before Check) - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
Teruggegewe waardes
pass_label · textexpires_at · textConfirm QR redemption
environmenttext · Verstek: "development"- Voorbeeldwaarde
development - Voorbeeld Bubble-uitdrukking
App Settings' selected_environment - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
pass_tokentext · Verstek: —- Voorbeeldwaarde
<opaque token returned by Issue / camera scan> - Voorbeeld Bubble-uitdrukking
QR Pass Scanner's scanned_pass_token (capture before Check) - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
request_idtext · Verstek: —- Voorbeeldwaarde
pickup-123-redeem-v1 - Voorbeeld Bubble-uitdrukking
Current Admission's stable_redemption_request_id - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
confirmyes/no · Verstek: false- Voorbeeldwaarde
yes — explicit confirmation only - Voorbeeld Bubble-uitdrukking
Confirm Checkbox is checked - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
Teruggegewe waardes
pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/noRevoke QR pass
environmenttext · Verstek: "development"- Voorbeeldwaarde
development - Voorbeeld Bubble-uitdrukking
App Settings' selected_environment - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
pass_idtext · Verstek: —- Voorbeeldwaarde
<pass_id returned by Issue> - Voorbeeld Bubble-uitdrukking
Selected Admission's pass_id - Gebruik die huidige besigheidsrekord se waarde; valideer dit teen die onderstaande limiete.
Teruggegewe waardes
pass_id · textrevoked · yes/noToestande en gebeurtenisse
Beplande werkstroom. Nog nie beskikbaar in die huidige beta nie.
Toestande
scanner_status · textHuidige resultaat van hierdie aksie. Gebruik die ooreenstemmende voltooiingsgebeurtenis voordat u sukses stoor. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded
server_status · textHuidige resultaat van hierdie aksie. Gebruik die ooreenstemmende voltooiingsgebeurtenis voordat u sukses stoor. empty,available,redeemed,already_used,expired,revoked
pass_id · textIdentifiseerder vir hierdie item of aksie. Behou dit saam met die ooreenstemmende app‑rekord. Gebruik dieselfde versoek‑identifiseerder wanneer u 'n onseker resultaat herprobeer.
pass_label · textHuidige waarde vir die gekose item. Lees dit na die verwante gebeurtenis. empty,access,event,coupon,membership
receipt_id · textIdentifiseerder vir hierdie item of aksie. Behou dit saam met die ooreenstemmende app‑rekord. Gebruik dieselfde versoek‑identifiseerder wanneer u 'n onseker resultaat herprobeer.
error_code · textFoutinligting vir die laaste aksie. Wys 'n nuttige boodskap en bied die toepaslike herprobe aan.
is_busy · yes/noWerk is nog in gang. Wag voordat u 'n ander aksie begin.
is_scanning · yes/noHuidige waarde vir die gekose item. Lees dit na die verwante gebeurtenis.
torch_enabled · yes/noHuidige waarde vir die gekose item. Lees dit na die verwante gebeurtenis.
scan_source · textHuidige waarde vir die gekose item. Lees dit na die verwante gebeurtenis. empty,camera,fixture
pending_redemption · yes/noHuidige waarde vir die gekose item. Lees dit na die verwante gebeurtenis.
scanned_pass_token · textHuidige waarde vir die gekose item. Lees dit na die verwante gebeurtenis.
Gebeurtenisse
scanner_startedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
scanner_pausedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
scanner_cancelledWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
permission_deniedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
pass_scannedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
validation_startedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
validation_completedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
redemption_startedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
pass_redeemedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
redemption_rejectedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
redemption_pendingWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
fixture_decodedWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
qr_errorWanneer hierdie gebeurtenis plaasvind, lees die verwante toestande vanaf dieselfde element.
Vrae wat ontwikkelaars vra
Wat beteken die twee toestemminginstellings?
Naam van die gebruiker ja/nee-veld wat werknemers merk wat passe mag skep of intrek. Voorbeeld/verstek: qr_pass_issuer. Plaas hier die veldnaam, nie ja of nee nie. Slegs ’n gemagtigde administrateur moet daardie toestemming op ’n gebruiker verander. Naam van die gebruiker ja/nee-veld wat personeel merk wat passe mag kontroleer en bevestig. Voorbeeld/verstek: qr_staff. ’n Kaartjiehouer hoef nie hierdie toestemming te hê nie. Hou dit uit openbare registrasie- en profielvorms.
Kan dieselfde werknemer passe skep en kontroleer?
Ja, as ’n gemagtigde administrateur daardie werknemer albei toestemmings gee. Dit vereis nie ’n ander projek-sleutel nie. Kliënte hoef normaalweg nie enige van die toestemmings te hê nie. Laat nie gebruikers toe om hierdie toestemmings aan hulself toe te ken nie.
Hoekom Check na Scan gebruik?
Skandering lees die kode. Check vra of die pas beskikbaar is sonder om dit te gebruik. Personeel kan eers die bestelling hersien. Slegs die aparte Confirm QR redemption-aksie gebruik die pas een keer.
Hoe werk die intekening?
Beplande pryse: die installering van die plugin in Bubble is gratis. BestPlugins-toegang is ’n aparte intekening vir elke plugin in elke Bubble-appprojek: 7 dae gratis, daarna US$1.50 per maand. Development en Live is ingesluit. Daar is geen vaste limiet op die aantal operasies nie; lêergrootte- en funksielimiete is steeds van toepassing. Afrekeningsproses is nog nie oop nie. Die aktiveringsskerm sal die eerste faktuurdatum en kansellasievoorwaardes wys.
Verwante gidse
Marketplace vrystelling hangende
Forumgids nie gepos nie
Vir hulp, vertel ons watter plugin en toestel jy gebruik, die aksie wat jy probeer het en wat gebeur het. Gebruik ’n voorbeeld sonder persoonlike data. Deel nooit jou sleutel of private lêers nie.