Interfejs skanera QR. Planowane są jednorazowe akcje przejścia.
Interfejs skanera QR. Planowane są jednorazowe akcje przejścia.
← Wszystkie natywne przewodniki

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.

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

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

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

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

  5. already_used, expired, revoked lub invalid oznacza brak przyjęcia lub przekazania zamówienia. Skan lub samodzielne udane Sprawdzenie nigdy nie kończy transakcji.

Diagram przepływu pracy — nie zrzut ekranu aplikacji

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
  1. Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins.
  2. Wybierz tę wtyczkę i skopiuj jej klucz projektu.
  3. Otwórz Bubble → Plugins → Xodera QR Passes Native; wklej klucz do project_api_key i zapisz.
  4. Dodaj element, wybierz dane aplikacji i zbuduj poniższy przepływ pracy.
  5. 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 · text

Stany

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

Zdarzenia

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

Akcje i ich wejścia

Clear session
Ustawienia 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 BubbleGuideHost'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 BubbleGuideHost'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 BubbleApp 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 BubbleCurrent 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 BubbleApp 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 BubbleApp 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 BubbleCurrent 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 BubbleSelected 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 BubbleEvent 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/no
Check QR pass
environmenttext · Domyślne: "development"
Przykładowa wartośćdevelopment
Przykładowe wyrażenie BubbleApp 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 BubbleQR 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 · text
Confirm QR redemption
environmenttext · Domyślne: "development"
Przykładowa wartośćdevelopment
Przykładowe wyrażenie BubbleApp 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 BubbleQR 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 BubbleCurrent 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 BubbleConfirm 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/no
Revoke QR pass
environmenttext · Domyślne: "development"
Przykładowa wartośćdevelopment
Przykładowe wyrażenie BubbleApp 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 BubbleSelected 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/no
Stany i zdarzenia

Planowany przepływ pracy. Nie jest jeszcze dostępny w bieżącej wersji beta.

Stany

scanner_status · text

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

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Identyfikator tego elementu lub akcji. Przechowuj go wraz z odpowiadającym rekordem aplikacji. Użyj tego samego identyfikatora żądania przy ponawianiu niepewnego wyniku.

pass_label · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu. empty,access,event,coupon,membership

receipt_id · text

Identyfikator tego elementu lub akcji. Przechowuj go wraz z odpowiadającym rekordem aplikacji. Użyj tego samego identyfikatora żądania przy ponawianiu niepewnego wyniku.

error_code · text

Informacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.

is_busy · yes/no

Praca wciąż trwa. Poczekaj przed rozpoczęciem kolejnej akcji.

is_scanning · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

torch_enabled · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

scan_source · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu. empty,camera,fixture

pending_redemption · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

scanned_pass_token · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

Zdarzenia

scanner_started

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

scanner_paused

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

scanner_cancelled

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

permission_denied

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

pass_scanned

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

validation_started

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

validation_completed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

redemption_started

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

pass_redeemed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

redemption_rejected

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

redemption_pending

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

fixture_decoded

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

qr_error

Gdy 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. Pos​​iadacz 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.