Antarmuka pemindai QR. Tindakan pass satu kali direncanakan.
Antarmuka pemindai QR. Tindakan pass satu kali direncanakan.
← Semua panduan native

Xodera Plugins · Bubble Native

Xodera QR Passes Native

Buat tiket satu kali pakai, konfirmasi pengambilan, atau kupon. Staf memindai kode, memeriksa hasil, meninjau pesanan, dan mengonfirmasi penggunaan hanya saat siap.

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.

Dokumentasi ditinjau 6 November 2026

Contoh praktis

Admit satu kali pakai untuk acara hari yang sama

Tangkapan layar nilai QR biasa dapat digunakan kembali di lebih dari satu pintu masuk.

Aplikasi Anda menyimpan catatan Admission dan issue stabil `request_id`; gunakan `label=event` yang dikurasi dan `ttl_seconds` dalam kontrak 1–86400-detik.

Penerbit yang berwenang menjalankan Issue QR pass dan secara pribadi mengirimkan QR yang dikembalikan. Staf memindai → Check QR pass → konfirmasi hanya jika `ok=yes` dan `status=available` → Confirm QR redemption dengan ID permintaan stabil yang disimpan.

Hanya `status=redeemed` plus `receipt_id` yang memberi wewenang pada tanda terima admission aplikasi Anda. Simpan referensi pass/tanda terima pada Admission; jangan mengungkapkan isi QR ke analitik.

Untuk `outcome_unknown`, pulihkan permintaan yang sama dengan pengguna/lingkungan/pass yang identik; jangan pernah membuat ID konfirmasi baru. Tangani expired, revoked, dan status sudah digunakan sebagai hasil yang berbeda.

Direncanakan. Pemindaian dan pemeriksaan tidak menggunakan pass; hanya konfirmasi eksplisit yang melakukannya.

Tukarkan manfaat berjangka pendek satu kali di konter mitra

Mitra memerlukan hasil terpakai/tidak terpakai yang terkonfirmasi alih-alih mempercayai gambar QR atau animasi layar.

`label=coupon`; catatan Benefit aplikasi menentukan kelayakan dan jendela validitas singkat sebelum tindakan issue yang berwenang.

Terbitkan pass hanya setelah pemeriksaan kelayakan aplikasi Anda. Di konter, Check QR pass menunjukkan ketersediaan tanpa mengkonsumsinya. Setelah staf mengonfirmasi pengiriman manfaat, jalankan Confirm QR redemption.

Catatan Benefit Anda dapat menyimpan `receipt_id` dan waktu penebusan yang terkonfirmasi setelah `status=redeemed`. Plugin mengelola status pass; aplikasi Anda mengelola manfaat dan hubungan pelanggan.

Jika manfaat dibatalkan sebelum digunakan, penerbit berwenang yang sama dapat Revoke QR pass menggunakan `pass_id`-nya. Jangan mengumumkan pengembalian dana atau penebusan berhasil hanya dari `ok=yes`.

Direncanakan. Pemindaian dan pemeriksaan tidak menggunakan pass; hanya konfirmasi eksplisit yang melakukannya.

Konfirmasi pengambilan peralatan atau pesanan pada hari yang sama

Alur kerja staf perlu membedakan pemindaian referensi pengambilan dengan penyerahan barang secara nyata.

Catatan Collection milik aplikasi Anda menyimpan otorisasi, barang yang dimaksud, dan ID permintaan issue/penebusan stabil yang terpisah; gunakan pass `label=access` berjangka pendek.

Setelah aplikasi Anda mengotorisasi pengambilan, Issue QR pass. Staf memindai dan memeriksa, meninjau Collection yang cocok di aplikasi Anda, lalu secara eksplisit mengonfirmasi penyerahan dan Confirm QR redemption.

Hanya setelah receipt `redeemed` terkonfirmasi alur kerja Anda harus menandai Collection sebagai telah diserahkan. Simpan `receipt_id` sebagai tautan ke hasil pass.

Pemindaian berulang dapat mengembalikan already_used; tampilkan catatan aplikasi yang ada alih-alih menyerahkan barang lain. Pulihkan konfirmasi yang tidak pasti dengan ID dan input yang sama.

Direncanakan. Pemindaian dan pemeriksaan tidak menggunakan pass; hanya konfirmasi eksplisit yang melakukannya.

Apa yang berfungsi sekarang

Beta pribadi. Pemindai saat ini memiliki kontrol kamera dan izin. Pembuatan, pemeriksaan, dan konfirmasi tiket satu kali pakai masih direncanakan dan belum siap digunakan dalam aplikasi Anda.

Buat alur kerja

Direncanakan

Alur kerja yang direncanakan. Belum tersedia dalam beta saat ini.

Contoh-contoh ini menggunakan catatan aplikasi seperti Lesson, Message, dan Order. Ganti mereka dengan tipe data dan nama elemen Anda sendiri. Alamat media contoh harus diganti dengan file Anda sendiri.

  1. Direncanakan: seorang karyawan berwenang menggunakan Issue QR pass untuk catatan Admission atau Order. Contoh: label=event, ttl_seconds=900, environment=development. Pertahankan request_id yang stabil untuk penerbitan tersebut dan simpan pass_id bersama catatan.

  2. Tampilkan QR yang dikembalikan kepada pemilik yang dimaksud. Staf memindainya. Dalam alur kerja tiket yang direncanakan, gunakan workflow_mode=yes dan baca scanned_pass_token setelah pass_scanned. Pengaturan alur kerja tiket ini tidak tersedia di pemindai saat ini.

  3. Jalankan Check QR pass dengan pass_token = QR Scanner's scanned_pass_token. Ini memeriksa tanpa menggunakan tiket. Untuk status=available, tampilkan detail order atau entri yang cocok agar staf dapat meninjaunya.

  4. Hanya tombol Konfirmasi terpisah yang menjalankan Confirm QR redemption dengan pass_token yang sama, request_id yang stabil, dan confirm=yes. Pada status=redeemed, simpan receipt_id dan tandai order atau entri tersebut selesai.

  5. already_used, expired, revoked, atau invalid berarti jangan izinkan masuk dan jangan serahkan order. Pemindaian atau Pemeriksaan yang berhasil saja tidak pernah menyelesaikan transaksi.

Diagram alur kerja — bukan tangkapan layar aplikasi

Konfigurasi sekali saja

Buat atau pilih proyek aplikasi Bubble Anda di BestPlugins → Dashboard → Plugins. Pilih Xodera QR Passes Native, salin kuncinya, lalu buka Bubble → Plugins → Xodera QR Passes Native dan tempelkan ke project_api_key. Simpan sekali; kemudian gunakan tindakan di bawah ini. Setiap plugin di setiap proyek memiliki kunci masing‑masing.

Pemindaian memerlukan izin kamera. Untuk tiket satu kali pakai, tentukan siapa yang dapat membuat tiket dan siapa yang dapat memeriksanya di pintu atau titik pengambilan. Pelanggan biasa tidak memerlukan peran staf.

qr_issuer_permission_field

qr_pass_issuer · Nama bidang ya/tidak Pengguna yang menandai karyawan yang diizinkan membuat atau mencabut pass. Contoh/default: qr_pass_issuer. Masukkan nama bidang di sini, bukan ya atau tidak. Hanya administrator yang berwenang yang boleh mengubah izin tersebut pada pengguna.

qr_staff_permission_field

qr_staff · Nama bidang ya/tidak Pengguna yang menandai staf yang diizinkan memeriksa dan mengonfirmasi penggunaan. Contoh/default: qr_staff. Pemegang tiket tidak memerlukan izin ini. Jauhkan dari formulir pendaftaran publik dan formulir profil.

Konfigurasi sekali saja
  1. Buat atau pilih proyek aplikasi Bubble Anda di BestPlugins → Dashboard → Plugins.
  2. Pilih plugin ini dan salin kunci proyeknya.
  3. Buka Bubble → Plugins → Xodera QR Passes Native; tempelkan kunci ke project_api_key dan simpan.
  4. Tambahkan elemen, pilih data aplikasi Anda, dan bangun alur kerja di bawah ini.
  5. Akses beta pribadi hanya untuk saat ini. Instalasi publik dan aktivasi berbayar belum dibuka.
Instalasi dan langganan

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.

Simpan hasil di aplikasi Anda

Contoh Admit atau Pengambilan: simpan order/acara terkait, pass_id, expires_at, dan issue_request_id. Setelah penggunaan dikonfirmasi, tambahkan receipt_id, redeemed_at, dan karyawan yang mengonfirmasi. Jangan tandai catatan selesai ketika kode hanya dipindai atau diperiksa. Kode QR tidak memverifikasi identitas seseorang.

Kegagalan, pembatalan, dan pemulihan

Jika outcome_unknown=yes, pertahankan tiket yang sama, request_id, dan masukan saat memeriksa hasil lagi. Jangan buat konfirmasi baru. already_used, expired, dan revoked adalah hasil bisnis akhir. Jika izin ditolak, minta administrator berwenang meninjau peran karyawan. Clear session mengatur ulang pemindai; tidak dapat membatalkan penggunaan yang telah selesai.

Kemampuan dan batasan

Tiket yang direncanakan bersifat satu kali pakai, dengan masa pakai 1–86400 detik; default 900. Jenis tiket: access, event, coupon, dan membership. Pemeriksaan tidak memesan tiket. Akses internet diperlukan untuk penggunaan tiket. Tidak ada pemrosesan pembayaran, pemeriksaan identitas, atau kartu keanggotaan jangka panjang yang dapat digunakan kembali. Membaca nilai QR biasa terpisah dari pemeriksaan tiket.

Pengaturan, tindakan, dan hasil

Gunakan nama-nama ini di Bubble. Fitur yang direncanakan ditandai secara terpisah.

Pengaturan beta yang tersedia

Pengaturan elemen

disabled · yes/nois_active · yes/noui_text_json · textlanguage · text

Status

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

Acara

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

Tindakan dan inputnya

Clear session
Pengaturan elemen · 5

Alur kerja yang direncanakan. Belum tersedia dalam beta saat ini.

disabledyes/no · Bawaan: false
Nilai contohno
Contoh ekspresi BubbleGuideHost's is_busy (your yes/no custom state)
Nonaktifkan elemen saat aplikasi Anda sibuk atau tindakan ini tidak tersedia.
is_activeyes/no · Bawaan: true
Nilai contohyes
Contoh ekspresi BubbleGuideHost's view_is_active (your yes/no custom state)
Setel ya saat tampilan ini terbuka. Setel tidak saat keluar, sehingga pemutaran atau pekerjaan saat ini dapat berhenti.
ui_text_jsontext · Bawaan: "{}"
Nilai contoh{}
Contoh ekspresi BubbleApp Settings' player_labels_json (supported keys only)
JSON opsional dengan label tombol yang didukung. Biarkan kosong untuk menggunakan teks bawaan.
languagetext · Bawaan: "auto"
Nilai contohuk
Contoh ekspresi BubbleCurrent User's preferred_language
Set language=auto untuk mengikuti perangkat atau bahasa peramban yang didukung. Masukkan kode bahasa yang didukung untuk memilihnya secara eksplisit.
workflow_modeyes/no · Bawaan: false
Nilai contohyes
Contoh ekspresi BubbleApp Settings' use_qr_business_actions
Direncanakan: izinkan nilai QR yang dipindai digunakan oleh Check QR pass. Pemindaian saja tidak mengonfirmasi masuk atau pengambilan.
Tindakan dan inputnya · 5

Alur kerja yang direncanakan. Belum tersedia dalam beta saat ini.

Clear session

Tidak ada parameter aksi

Issue QR pass
environmenttext · Bawaan: "development"
Nilai contohdevelopment
Contoh ekspresi BubbleApp Settings' selected_environment
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
request_idtext · Bawaan: —
Nilai contohpickup-123-issue-v1
Contoh ekspresi BubbleCurrent Admission's stable_request_id
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
labeltext · Bawaan: "access"
Nilai contohevent
Contoh ekspresi BubbleSelected Admission's pass_label
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
ttl_secondsnumber · Bawaan: 900
Nilai contoh900
Contoh ekspresi BubbleEvent Settings' pass_ttl_seconds
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.

Pengembalian

pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/no
Check QR pass
environmenttext · Bawaan: "development"
Nilai contohdevelopment
Contoh ekspresi BubbleApp Settings' selected_environment
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
pass_tokentext · Bawaan: —
Nilai contoh<opaque token returned by Issue / camera scan>
Contoh ekspresi BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.

Pengembalian

pass_label · textexpires_at · text
Confirm QR redemption
environmenttext · Bawaan: "development"
Nilai contohdevelopment
Contoh ekspresi BubbleApp Settings' selected_environment
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
pass_tokentext · Bawaan: —
Nilai contoh<opaque token returned by Issue / camera scan>
Contoh ekspresi BubbleQR Pass Scanner's scanned_pass_token (capture before Check)
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
request_idtext · Bawaan: —
Nilai contohpickup-123-redeem-v1
Contoh ekspresi BubbleCurrent Admission's stable_redemption_request_id
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
confirmyes/no · Bawaan: false
Nilai contohyes — explicit confirmation only
Contoh ekspresi BubbleConfirm Checkbox is checked
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.

Pengembalian

pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/no
Revoke QR pass
environmenttext · Bawaan: "development"
Nilai contohdevelopment
Contoh ekspresi BubbleApp Settings' selected_environment
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
pass_idtext · Bawaan: —
Nilai contoh<pass_id returned by Issue>
Contoh ekspresi BubbleSelected Admission's pass_id
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.

Pengembalian

pass_id · textrevoked · yes/no
Status dan peristiwa

Alur kerja yang direncanakan. Belum tersedia dalam beta saat ini.

Status

scanner_status · text

Hasil saat ini dari tindakan ini. Gunakan event penyelesaian yang cocok sebelum menyimpan keberhasilan. idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded

server_status · text

Hasil saat ini dari tindakan ini. Gunakan event penyelesaian yang cocok sebelum menyimpan keberhasilan. empty,available,redeemed,already_used,expired,revoked

pass_id · text

Pengidentifikasi untuk item atau tindakan ini. Simpan bersama catatan aplikasi yang cocok. Gunakan pengidentifikasi permintaan yang sama saat mencoba kembali hasil yang tidak pasti.

pass_label · text

Nilai saat ini untuk item yang dipilih. Baca setelah acara terkait. empty,access,event,coupon,membership

receipt_id · text

Pengidentifikasi untuk item atau tindakan ini. Simpan bersama catatan aplikasi yang cocok. Gunakan pengidentifikasi permintaan yang sama saat mencoba kembali hasil yang tidak pasti.

error_code · text

Informasi error untuk tindakan terakhir. Tampilkan pesan yang membantu dan tawarkan percobaan ulang yang relevan.

is_busy · yes/no

Pekerjaan masih dalam proses. Tunggu sebelum memulai tindakan lain.

is_scanning · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

torch_enabled · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

scan_source · text

Nilai saat ini untuk item yang dipilih. Baca setelah acara terkait. empty,camera,fixture

pending_redemption · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

scanned_pass_token · text

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

Acara

scanner_started

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

scanner_paused

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

scanner_cancelled

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

permission_denied

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

pass_scanned

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

validation_started

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

validation_completed

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

redemption_started

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

pass_redeemed

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

redemption_rejected

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

redemption_pending

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

fixture_decoded

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

qr_error

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

Pertanyaan yang diajukan pengembang

Apa arti dua pengaturan izin ini?

Nama bidang ya/tidak Pengguna yang menandai karyawan yang diizinkan membuat atau mencabut tiket. Contoh/default: qr_pass_issuer. Masukkan nama bidang di sini, bukan ya atau tidak. Hanya administrator berwenang yang boleh mengubah izin tersebut pada pengguna. Nama bidang ya/tidak Pengguna yang menandai staf yang diizinkan memeriksa dan mengonfirmasi penggunaan. Contoh/default: qr_staff. Pemegang tiket tidak memerlukan izin ini. Jauhkan dari formulir pendaftaran publik dan formulir profil.

Apakah karyawan yang sama dapat membuat dan memeriksa tiket?

Ya, jika administrator berwenang memberikan kedua izin tersebut kepada karyawan tersebut. Ini tidak memerlukan kunci proyek lain. Pelanggan biasanya tidak memerlukan izin apa pun. Jangan biarkan pengguna memberi diri mereka sendiri izin ini.

Mengapa menggunakan Pemeriksaan setelah Pemindaian?

Pemindaian membaca kode. Pemeriksaan menanyakan apakah tiket tersedia tanpa menggunakannya. Staf dapat meninjau order terlebih dahulu. Hanya aksi Confirm QR redemption terpisah yang menggunakan tiket satu kali.

Bagaimana cara kerja langganan?

Penetapan harga yang direncanakan: menginstal plugin di Bubble gratis. Akses BestPlugins merupakan langganan terpisah untuk setiap plugin dalam setiap proyek aplikasi Bubble: 7 hari gratis, kemudian US$1.50 per bulan. Development dan Live termasuk. Tidak ada batas tetap pada jumlah operasi; batas ukuran file dan fitur tetap berlaku. Checkout belum dibuka. Layar aktivasi akan menampilkan tanggal penagihan pertama dan ketentuan pembatalan.

Panduan terkait

Marketplace rilis tertunda

Panduan forum belum diposting

Untuk bantuan, beri tahu kami plugin dan perangkat yang Anda gunakan, tindakan yang Anda coba, dan apa yang terjadi. Gunakan contoh tanpa data pribadi. Jangan pernah membagikan kunci atau file pribadi Anda.