
Xodera Plugins · Bubble Native
Xodera QR Passes Native
Twórz jednorazowe bilety, potwierdzenia odbioru lub kupony. Personel skanuje kod, sprawdza wynik, podgląda zamówienie i potwierdza użycie dopiero, gdy jest gotowy.
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.
Dokumentacja przeglądnięta 6 listopad 2026
Praktyczne przykłady
Jednorazowe wstęp na wydarzenie tego samego dnia
Zrzut ekranu zwykłej wartości QR może być ponownie użyty przy więcej niż jednym wejściu.
Twoja aplikacja przechowuje rekord Admission oraz stabilny identyfikator żądania wydania `request_id`; użyj przygotowanego `label=event` i `ttl_seconds` w ramach kontraktu 1–86400-sekundowego.
Autoryzowany wystawca uruchamia Issue QR pass i prywatnie dostarcza zwrócony QR. Personel skanuje → Check QR pass → potwierdza tylko jeśli `ok=yes` i `status=available` → Confirm QR redemption z zapisanym stabilnym identyfikatorem żądania.
Tylko `status=redeemed` oraz `receipt_id` autoryzują potwierdzenie przyjęcia w Twojej aplikacji. Przechowaj odniesienie do przepustki/potwierdzenia w rekordzie Admission; nie ujawniaj zawartości QR w analizach.
Dla `outcome_unknown` odzyskaj to samo żądanie z identycznym użytkownikiem/środowiskiem/przepustką; nigdy nie generuj nowego identyfikatora potwierdzenia. Traktuj expired, revoked oraz stany już użyte jako odrębne wyniki.
Planowane. Skanowanie i sprawdzanie nie używają przepustki; tylko wyraźne potwierdzenie ją wykorzystuje.
Zrealizuj jednorazowo krótkotrwałą korzyść przy stanowisku partnera
Partner potrzebuje potwierdzonego wyniku użytego/nieużytego zamiast polegać na obrazie QR lub animacji ekranu.
`label=coupon`; rekord Benefit w aplikacji określa uprawnienia i krótki okres ważności przed autoryzowaną akcją wydania.
Wydaj przepustkę dopiero po sprawdzeniu uprawnień w Twojej aplikacji. Przy stanowisku Check QR pass pokazuje dostępność bez jej zużycia. Po potwierdzeniu dostawy korzyści przez pracownika, uruchom Confirm QR redemption.
Twój rekord Benefit może przechowywać `receipt_id` oraz potwierdzony czas realizacji po `status=redeemed`. Wtyczka zarządza stanem przepustki; Twoja aplikacja zarządza korzyścią i relacją z klientem.
Jeśli korzyść zostanie anulowana przed użyciem, ten sam autoryzowany wystawca może Revoke QR pass używając swojego `pass_id`. Nie ogłaszaj zwrotu ani udanej realizacji wyłącznie na podstawie `ok=yes`.
Planowane. Skanowanie i sprawdzanie nie używają przepustki; tylko wyraźne potwierdzenie ją wykorzystuje.
Potwierdź odbiór sprzętu lub zamówienia tego samego dnia
Proces pracowniczy musi rozróżniać skanowanie odniesienia kolekcji od faktycznego przekazania przedmiotu.
Własny rekord Collection w Twojej aplikacji przechowuje autoryzację, zamierzony przedmiot oraz odrębne stabilne identyfikatory żądań wydania/realizacji; użyj krótkotrwałej przepustki `label=access`.
Po autoryzacji kolekcji w Twojej aplikacji, Issue QR pass. Personel skanuje i sprawdza, inspekcjonuje pasującą kolekcję w aplikacji, a następnie wyraźnie potwierdza przekazanie oraz Confirm QR redemption.
Dopiero po potwierdzonym odbiorze `redeemed` Twój proces powinien ustawić kolekcję jako przekazaną. Zachowaj `receipt_id` jako link do wyniku przepustki.
Powtórne skanowanie może zwrócić already_used; wyświetl istniejący rekord aplikacji zamiast przekazywać kolejny przedmiot. Odzyskaj niepewne potwierdzenie przy użyciu tego samego identyfikatora i danych wejściowych.
Planowane. Skanowanie i sprawdzanie nie używają przepustki; tylko wyraźne potwierdzenie ją wykorzystuje.
Co działa teraz
Prywatna beta. Obecny skaner posiada kontrolę kamery i uprawnień. Tworzenie, sprawdzanie i potwierdzanie jednorazowych przepustek jest planowane i nie jest jeszcze gotowe do użycia w Twojej aplikacji.
Zbuduj przepływ pracy
Zaplanowane
Planowany przepływ pracy. Nie jest jeszcze dostępny w bieżącej wersji beta.
Te przykłady używają rekordów aplikacji, takich jak Lesson, Message i Order. Zastąp je własnymi typami danych i nazwami elementów. Przykładowe adresy mediów należy zastąpić własnymi plikami.
Planowane: upoważniony pracownik używa Issue QR pass do wstępu lub Order. Przykład: label=event, ttl_seconds=900, environment=development. Zachowaj stały request_id dla tego zgłoszenia i zapisz pass_id wraz z rekordem.
Pokaż zwrócony QR jego zamierzonemu posiadaczowi. Personel go skanuje. W planowanym przepływie przepustki użyj workflow_mode=yes i odczytaj scanned_pass_token po pass_scanned. Te ustawienia przepustki nie są dostępne w bieżącym skanerze.
Uruchom Check QR pass z pass_token = QR Scanner's scanned_pass_token. Sprawdza bez użycia przepustki. Dla status=available pokaż pasujące szczegóły zamówienia lub wpisu, aby personel mógł je przejrzeć.
Tylko oddzielny przycisk Potwierdź uruchamia Confirm QR redemption z tym samym pass_token, stabilnym request_id i confirm=yes. Na status=redeemed zapisz receipt_id i oznacz to zamówienie lub wpis jako zakończone.
already_used, expired, revoked lub invalid oznacza brak przyjęcia lub przekazania zamówienia. Skan lub samodzielne udane Sprawdzenie nigdy nie kończy transakcji.
Skonfiguruj raz
Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins. Wybierz Xodera QR Passes Native, skopiuj jego klucz, a następnie otwórz Bubble → Plugins → Xodera QR Passes Native i wklej go do project_api_key. Zapisz raz; potem użyj poniższych akcji. Każda wtyczka w każdym projekcie ma własny klucz.
Skanowanie wymaga uprawnienia do kamery. W przypadku jednorazowych przepustek zdecyduj, kto może je tworzyć, a kto może je sprawdzać przy drzwiach lub punkcie odbioru. Zwykli klienci nie potrzebują roli personelu.
qr_issuer_permission_field
qr_pass_issuer · Nazwa pola tak/nie użytkownika, które oznacza pracowników uprawnionych do tworzenia lub odwoływania przepustek. Przykład/wartość domyślna: qr_pass_issuer. Wpisz tutaj nazwę pola, a nie tak lub nie. Tylko upoważniony administrator powinien zmieniać to uprawnienie dla użytkownika.
qr_staff_permission_field
qr_staff · Nazwa pola tak/nie użytkownika, które oznacza personel uprawniony do sprawdzania i potwierdzania użycia. Przykład/wartość domyślna: qr_staff. Posiadacz biletu nie potrzebuje tego uprawnienia. Nie umieszczaj go w publicznych formularzach rejestracji i profilach.
Skonfiguruj raz
- Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins.
- Wybierz tę wtyczkę i skopiuj jej klucz projektu.
- Otwórz Bubble → Plugins → Xodera QR Passes Native; wklej klucz do project_api_key i zapisz.
- Dodaj element, wybierz dane aplikacji i zbuduj poniższy przepływ pracy.
- Dostęp do prywatnej bety tylko na razie. Publiczna instalacja i płatna aktywacja nie są jeszcze dostępne.
Instalacja i subskrypcja
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.
Zapisz wynik w swojej aplikacji
Przykład wstępu lub odbioru: zapisz powiązane zamówienie/wydarzenie, pass_id, expires_at i issue_request_id. Po potwierdzonym użyciu dodaj receipt_id, redeemed_at oraz pracownika, który potwierdził. Nie oznaczaj rekordu jako zakończonego, gdy kod został jedynie zeskanowany lub sprawdzony. Kod QR nie weryfikuje tożsamości osoby.
Błąd, anulowanie i odzyskiwanie
Jeśli outcome_unknown=yes, zachowaj tę samą przepustkę, request_id i dane wejściowe przy ponownym sprawdzaniu wyniku. Nie twórz nowego potwierdzenia. already_used, expired i revoked są ostatecznymi wynikami biznesowymi. Jeśli uprawnienie zostanie odmówione, poproś upoważnionego administratora o przegląd roli pracownika. Clear session resetuje skaner; nie może cofnąć zakończonego użycia.
Możliwości i ograniczenia
Planowane przepustki są jednorazowe, o czasie życia 1–86400 sekund; domyślnie 900. Typy przepustek: access, event, coupon i membership. Sprawdzanie nie rezerwuje przepustki. Do użycia przepustki wymagany jest dostęp do Internetu. Brak przetwarzania płatności, weryfikacji tożsamości ani wielokrotnego karty członkowskiej długoterminowej. Odczyt zwykłej wartości QR jest oddzielny od sprawdzania przepustki.
Ustawienia, akcje i wyniki
Użyj tych nazw w Bubble. Planowane funkcje są oznaczone osobno.
Dostępne ustawienia beta
Ustawienia elementu
disabled · yes/nois_active · yes/noui_text_json · textlanguage · textStany
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/noZdarzenia
scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_errorAkcje i ich wejścia
Clear sessionUstawienia elementu · 5
Planowany przepływ pracy. Nie jest jeszcze dostępny w bieżącej wersji beta.
disabledyes/no · Domyślne: false- Przykładowa wartość
no - Przykładowe wyrażenie Bubble
GuideHost's is_busy (your yes/no custom state) - Wyłącz element, gdy aplikacja jest zajęta lub akcja jest niedostępna.
is_activeyes/no · Domyślne: true- Przykładowa wartość
yes - Przykładowe wyrażenie Bubble
GuideHost's view_is_active (your yes/no custom state) - Ustaw tak, gdy ten widok jest otwarty. Ustaw nie przy zamykaniu, aby odtwarzanie lub bieżąca praca mogły się zatrzymać.
ui_text_jsontext · Domyślne: "{}"- Przykładowa wartość
{} - Przykładowe wyrażenie Bubble
App Settings' player_labels_json (supported keys only) - Opcjonalny JSON z obsługiwanymi etykietami przycisków. Pozostaw puste, aby użyć wbudowanego tekstu.
languagetext · Domyślne: "auto"- Przykładowa wartość
uk - Przykładowe wyrażenie Bubble
Current User's preferred_language - Ustaw language=auto, aby podążał za obsługiwanym językiem urządzenia lub przeglądarki. Wprowadź obsługiwany kod języka, aby wybrać go explicite.
workflow_modeyes/no · Domyślne: false- Przykładowa wartość
yes - Przykładowe wyrażenie Bubble
App Settings' use_qr_business_actions - Planowane: umożliwić użycie zeskanowanej wartości QR przez Check QR pass. Same skanowanie nie potwierdza wejścia ani odbioru.
Akcje i ich wejścia · 5
Planowany przepływ pracy. Nie jest jeszcze dostępny w bieżącej wersji beta.
Clear session
Brak parametrów akcji
Issue QR pass
environmenttext · Domyślne: "development"- Przykładowa wartość
development - Przykładowe wyrażenie Bubble
App Settings' selected_environment - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
request_idtext · Domyślne: —- Przykładowa wartość
pickup-123-issue-v1 - Przykładowe wyrażenie Bubble
Current Admission's stable_request_id - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
labeltext · Domyślne: "access"- Przykładowa wartość
event - Przykładowe wyrażenie Bubble
Selected Admission's pass_label - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
ttl_secondsnumber · Domyślne: 900- Przykładowa wartość
900 - Przykładowe wyrażenie Bubble
Event Settings' pass_ttl_seconds - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Zwroty
pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/noCheck QR pass
environmenttext · Domyślne: "development"- Przykładowa wartość
development - Przykładowe wyrażenie Bubble
App Settings' selected_environment - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
pass_tokentext · Domyślne: —- Przykładowa wartość
<opaque token returned by Issue / camera scan> - Przykładowe wyrażenie Bubble
QR Pass Scanner's scanned_pass_token (capture before Check) - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Zwroty
pass_label · textexpires_at · textConfirm QR redemption
environmenttext · Domyślne: "development"- Przykładowa wartość
development - Przykładowe wyrażenie Bubble
App Settings' selected_environment - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
pass_tokentext · Domyślne: —- Przykładowa wartość
<opaque token returned by Issue / camera scan> - Przykładowe wyrażenie Bubble
QR Pass Scanner's scanned_pass_token (capture before Check) - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
request_idtext · Domyślne: —- Przykładowa wartość
pickup-123-redeem-v1 - Przykładowe wyrażenie Bubble
Current Admission's stable_redemption_request_id - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
confirmyes/no · Domyślne: false- Przykładowa wartość
yes — explicit confirmation only - Przykładowe wyrażenie Bubble
Confirm Checkbox is checked - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Zwroty
pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/noRevoke QR pass
environmenttext · Domyślne: "development"- Przykładowa wartość
development - Przykładowe wyrażenie Bubble
App Settings' selected_environment - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
pass_idtext · Domyślne: —- Przykładowa wartość
<pass_id returned by Issue> - Przykładowe wyrażenie Bubble
Selected Admission's pass_id - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Zwroty
pass_id · textrevoked · yes/noStany i zdarzenia
Planowany przepływ pracy. Nie jest jeszcze dostępny w bieżącej wersji beta.
Stany
scanner_status · textAktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded
server_status · textAktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu. empty,available,redeemed,already_used,expired,revoked
pass_id · textIdentyfikator tego elementu lub akcji. Przechowuj go wraz z odpowiadającym rekordem aplikacji. Użyj tego samego identyfikatora żądania przy ponawianiu niepewnego wyniku.
pass_label · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu. empty,access,event,coupon,membership
receipt_id · textIdentyfikator tego elementu lub akcji. Przechowuj go wraz z odpowiadającym rekordem aplikacji. Użyj tego samego identyfikatora żądania przy ponawianiu niepewnego wyniku.
error_code · textInformacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.
is_busy · yes/noPraca wciąż trwa. Poczekaj przed rozpoczęciem kolejnej akcji.
is_scanning · yes/noAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
torch_enabled · yes/noAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
scan_source · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu. empty,camera,fixture
pending_redemption · yes/noAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
scanned_pass_token · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
Zdarzenia
scanner_startedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
scanner_pausedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
scanner_cancelledGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
permission_deniedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
pass_scannedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
validation_startedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
validation_completedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
redemption_startedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
pass_redeemedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
redemption_rejectedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
redemption_pendingGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
fixture_decodedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
qr_errorGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
Pytania, które zadają programiści
Co oznaczają dwa ustawienia uprawnień?
Nazwa pola użytkownika typu tak/nie, które oznacza pracowników uprawnionych do tworzenia lub unieważniania przepustek. Przykład/wartość domyślna: qr_pass_issuer. Wpisz tutaj nazwę pola, nie tak lub nie. Tylko upoważniony administrator powinien zmieniać to uprawnienie dla użytkownika. Nazwa pola użytkownika typu tak/nie, które oznacza personel uprawniony do sprawdzania i potwierdzania użycia. Przykład/wartość domyślna: qr_staff. Posiadacz biletu nie potrzebuje tego uprawnienia. Nie umieszczaj tego w publicznych formularzach rejestracji i profilach.
Czy ten sam pracownik może tworzyć i sprawdzać przepustki?
Tak, jeśli upoważniony administrator przyzna temu pracownikowi oba uprawnienia. Nie wymaga to dodatkowego klucza projektu. Klienci zazwyczaj nie potrzebują żadnego z tych uprawnień. Nie pozwalaj użytkownikom przydzielać sobie tych uprawnień.
Dlaczego używać Sprawdzenia po Skanowaniu?
Skan odczytuje kod. Sprawdzenie pyta, czy przepustka jest dostępna bez jej użycia. Personel może najpierw przejrzeć zamówienie. Tylko oddzielna akcja Confirm QR redemption używa przepustki jednorazowo.
Jak działa subskrypcja?
Planowane ceny: instalacja wtyczki w Bubble jest darmowa. Dostęp do BestPlugins to osobna subskrypcja dla każdej wtyczki w każdym projekcie aplikacji Bubble: 7 dni darmowo, potem US$1.50 miesięcznie. Development i Live są wliczone. Nie ma stałego limitu liczby operacji; nadal obowiązują limity rozmiaru pliku i funkcji. Kasa nie jest jeszcze otwarta. Ekran aktywacji pokaże pierwszą datę rozliczenia i warunki anulowania.
Powiązane przewodniki
Marketplace wydanie w toku
Przewodnik forum nieopublikowany
Aby uzyskać pomoc, podaj, której wtyczki i urządzenia używasz, jaką akcję podjąłeś i co się stało. Użyj przykładu bez danych osobowych. Nigdy nie udostępniaj swojego klucza ani prywatnych plików.