QR 掃描器介面。計畫一次性通行動作。
QR 掃描器介面。計畫一次性通行動作。
← 全部原生指南

Xodera Plugins · Bubble Native

Xodera QR Passes Native

建立一次性票券、取貨確認或優惠券。工作人員掃描代碼、檢查結果、預覽訂單,並在準備好時確認使用。

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.

文件審閱日期:2026年11月6日

實用範例

同日活動的一次性入場

普通 QR 值的螢幕截圖在多個入口處仍可能被重複使用。

您的應用程式儲存 Admission 記錄和穩定的 issue `request_id`;使用已策劃的 `label=event` 以及 `ttl_seconds`,於 1–86400 秒的合約內。

授權的發行者執行 Issue QR pass 並私下傳遞返回的 QR。工作人員掃描 → Check QR pass → 僅在 `ok=yes` 和 `status=available` 時確認 → Confirm QR redemption,並使用已儲存的穩定請求 ID。

僅 `status=redeemed` 加上 `receipt_id` 可授權您的應用程式的 admission 收據。將通行證/收據參考儲存在 Admission 上;不要將 QR 內容暴露給分析。

對於 `outcome_unknown`,使用相同的使用者/環境/通行證恢復相同的請求;絕不產生新的確認 ID。將 expired、revoked 以及已使用的狀態視為不同的結果。

計畫中。掃描與檢查不會消耗通行證的單次使用資格;只有明確確認才會消耗該資格。

在合作夥伴櫃檯一次性兌換短期效益

合作夥伴需要已確認的已使用/未使用結果,而非僅信任 QR 圖像或螢幕動畫。

`label=coupon`;在獲授權的簽發動作之前,由應用程式的 Benefit 記錄定義資格與較短的有效期。

僅在您的應用程式完成資格檢查後才發行通行證。於櫃檯,Check QR pass 顯示可用性且不會消耗。工作人員確認福利交付後,執行 Confirm QR redemption。

您的 Benefit 記錄可儲存 `receipt_id` 以及 `status=redeemed` 後的確認兌換時間。外掛管理通行證狀態;您的應用程式管理福利與客戶關係。

若福利在使用前被取消,同一授權發行者可使用其 `pass_id` 來 Revoke QR pass。不要僅從 `ok=yes` 宣布退款或成功兌換。

計畫中。掃描與檢查不會消耗通行證的單次使用資格;只有明確確認才會消耗該資格。

確認當日設備或訂單取貨

工作人員工作流程需要區分掃描取貨憑據與實際交付項目。

您的應用程式擁有的 Collection 記錄保留授權、預定項目以及分別的穩定發行/兌換請求 ID;使用短期 `label=access` 通行證。

在您的應用程式授權取貨後,Issue QR pass。工作人員掃描並檢查,檢視您應用程式中相符的 Collection,然後明確確認交付以及 Confirm QR redemption。

僅在確認的 `redeemed` 收據之後,您的工作流程才應將 Collection 設為已交付。保留 `receipt_id` 作為通行證結果的連結。

重複掃描可能返回 already_used;顯示現有的應用程式記錄而非交付另一項目。使用相同的 ID 與輸入恢復不確定的確認。

計畫中。掃描與檢查不會消耗通行證的單次使用資格;只有明確確認才會消耗該資格。

目前可用功能

私人測試版。現行掃描器具備相機與權限控制。一次性通行證的建立、檢查與確認仍在規劃中,尚未可於您的應用程式使用。

建立工作流程

計畫中

規劃中的工作流程。目前的測試版尚未提供。

這些範例使用如 Lesson、Message 和 Order 的應用程式記錄。請以您自己的資料類型和元素名稱取代它們。範例媒體位址必須替換為您自己的檔案。

  1. 計畫中:授權員工使用 Issue QR pass 進行入場或 Order。範例:label=event、ttl_seconds=900、environment=development。為該發行保留穩定的 request_id,並將 pass_id 儲存於記錄中。

  2. 向預定持有人展示返回的 QR。工作人員掃描它。在計畫通行證工作流程中,使用 workflow_mode=yes 並在 pass_scanned 後讀取 scanned_pass_token。這些通行證工作流程設定在目前的掃描器中不可用。

  3. 使用 Check QR pass 搭配 pass_token = QR Scanner's scanned_pass_token 執行。檢查不會消耗通行證的單次使用資格。對於 status=available,顯示相符的訂單或條目詳細資訊,讓工作人員審核。

  4. 僅有獨立的 Confirm 按鈕會以相同的 pass_token、穩定的 request_id 和 confirm=yes 執行 Confirm QR redemption。於 status=redeemed 時,儲存 receipt_id 並將該訂單或條目標記為完成。

  5. already_used、expired、revoked 或 invalid 表示不允許入場或交付訂單。僅掃描或成功的檢查本身永不會完成交易。

工作流程圖 — 不是應用程式截圖

一次性設定

在 BestPlugins → Dashboard → Plugins 中建立或選取您的 Bubble 應用程式專案。選擇 Xodera QR Passes Native,複製其金鑰,然後開啟 Bubble → Plugins → Xodera QR Passes Native,將金鑰貼入 project_api_key。儲存一次;之後使用下方操作。每個專案中的每個外掛都有其專屬金鑰。

掃描需要相機權限。對於一次性通行證,決定誰可以建立通行證以及誰可以在門口或取貨點檢查通行證。普通顧客不需要任何員工角色。

qr_issuer_permission_field

qr_pass_issuer · 用於標示允許建立或撤銷通行證之員工的使用者是/否欄位名稱。範例/預設值:qr_pass_issuer。請在此填入欄位名稱,而非是或否。僅授權的管理員可變更使用者的此權限。

qr_staff_permission_field

qr_staff · 用於標示允許工作人員檢查並確認使用之使用者是/否欄位名稱。範例/預設值:qr_staff。票券持有人不需要此權限。請將其排除於公開註冊與個人資料表單。

一次性設定
  1. 在 BestPlugins → Dashboard → Plugins 中建立或選取您的 Bubble 應用程式專案。
  2. 選取此外掛並複製其專案金鑰。
  3. 開啟 Bubble → Plugins → Xodera QR Passes Native;將金鑰貼入 project_api_key 並儲存。
  4. 加入元件,選取您的應用程式資料,並建立下方的工作流程。
  5. 目前僅限私人測試版存取。公開安裝與付費啟用尚未開放。
安裝與訂閱

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.

將結果儲存至您的應用程式

範例入場或取貨:儲存相關的訂單/活動,pass_id、expires_at 和 issue_request_id。確認使用後,加入 receipt_id、redeemed_at 以及確認的員工。當代碼僅被掃描或檢查時,不要將記錄標記為完成。QR 代碼不驗證個人身份。

失敗、取消與復原

如果 outcome_unknown=yes,保留相同的通行證、request_id 以及輸入,重新檢查結果時不要建立新確認。already_used、expired 和 revoked 為最終業務結果。若權限被拒絕,請授權的管理員審核該員工的角色。Clear session 會重設掃描器;它無法撤銷已完成的使用。

功能與限制

計畫中的通行證為單次使用,壽命為 1–86400 秒;預設為 900。通行證類型:access、event、coupon 和 membership。檢查不會保留通行證。使用通行證需連網。無付款處理、身份驗證或可重複使用的長期會員卡。讀取普通 QR 值與檢查通行證是分開的。

設定、操作與結果

在 Bubble 中使用這些名稱。計畫中的功能會另行標示。

可用的測試版設定

元素設定

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

狀態

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

事件

scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error

操作及其輸入

Clear session
元素設定 · 5

規劃中的工作流程。目前的測試版尚未提供。

disabledyes/no · 預設: false
範例值no
範例 Bubble 表達式GuideHost's is_busy (your yes/no custom state)
當您的應用忙碌或此操作不可用時,停用該元件。
is_activeyes/no · 預設: true
範例值yes
範例 Bubble 表達式GuideHost's view_is_active (your yes/no custom state)
在此視圖開啟時設為是,離開時設為否,以便停止播放或當前工作。
ui_text_jsontext · 預設: "{}"
範例值{}
範例 Bubble 表達式App Settings' player_labels_json (supported keys only)
可選的 JSON,包含支援的按鈕標籤。留空則使用內建文字。
languagetext · 預設: "auto"
範例值uk
範例 Bubble 表達式Current User's preferred_language
設定 language=auto 以跟隨支援的裝置或瀏覽器語言。輸入支援的語言代碼以明確選擇。
workflow_modeyes/no · 預設: false
範例值yes
範例 Bubble 表達式App Settings' use_qr_business_actions
計畫中:允許掃描的 QR 值被 Check QR pass 使用。僅掃描並不確認進入或取貨。
操作及其輸入 · 5

規劃中的工作流程。目前的測試版尚未提供。

Clear session

無操作參數

Issue QR pass
environmenttext · 預設: "development"
範例值development
範例 Bubble 表達式App Settings' selected_environment
使用目前業務記錄的值;依以下限制進行驗證。
request_idtext · 預設: —
範例值pickup-123-issue-v1
範例 Bubble 表達式Current Admission's stable_request_id
使用目前業務記錄的值;依以下限制進行驗證。
labeltext · 預設: "access"
範例值event
範例 Bubble 表達式Selected Admission's pass_label
使用目前業務記錄的值;依以下限制進行驗證。
ttl_secondsnumber · 預設: 900
範例值900
範例 Bubble 表達式Event Settings' pass_ttl_seconds
使用目前業務記錄的值;依以下限制進行驗證。

回傳值

pass_id · textpass_token · textpass_label · textexpires_at · textqr_png_data_uri · textreused · yes/no
Check QR pass
environmenttext · 預設: "development"
範例值development
範例 Bubble 表達式App Settings' selected_environment
使用目前業務記錄的值;依以下限制進行驗證。
pass_tokentext · 預設: —
範例值<opaque token returned by Issue / camera scan>
範例 Bubble 表達式QR Pass Scanner's scanned_pass_token (capture before Check)
使用目前業務記錄的值;依以下限制進行驗證。

回傳值

pass_label · textexpires_at · text
Confirm QR redemption
environmenttext · 預設: "development"
範例值development
範例 Bubble 表達式App Settings' selected_environment
使用目前業務記錄的值;依以下限制進行驗證。
pass_tokentext · 預設: —
範例值<opaque token returned by Issue / camera scan>
範例 Bubble 表達式QR Pass Scanner's scanned_pass_token (capture before Check)
使用目前業務記錄的值;依以下限制進行驗證。
request_idtext · 預設: —
範例值pickup-123-redeem-v1
範例 Bubble 表達式Current Admission's stable_redemption_request_id
使用目前業務記錄的值;依以下限制進行驗證。
confirmyes/no · 預設: false
範例值yes — explicit confirmation only
範例 Bubble 表達式Confirm Checkbox is checked
使用目前業務記錄的值;依以下限制進行驗證。

回傳值

pass_id · textpass_label · textreceipt_id · textredeemed_at · textreused · yes/no
Revoke QR pass
environmenttext · 預設: "development"
範例值development
範例 Bubble 表達式App Settings' selected_environment
使用目前業務記錄的值;依以下限制進行驗證。
pass_idtext · 預設: —
範例值<pass_id returned by Issue>
範例 Bubble 表達式Selected Admission's pass_id
使用目前業務記錄的值;依以下限制進行驗證。

回傳值

pass_id · textrevoked · yes/no
狀態與事件

規劃中的工作流程。目前的測試版尚未提供。

狀態

scanner_status · text

此操作的當前結果。於儲存成功前使用相符的完成事件。idle,requesting_permission,permission_denied,scanning,paused,scanned,validating,available,redeeming,redeemed,unavailable,unknown,error,cancelled,decoding_fixture,fixture_decoded

server_status · text

此操作的當前結果。於儲存成功前使用相符的完成事件。empty,available,redeemed,already_used,expired,revoked

pass_id · text

此項目或操作的識別碼。請將其與相應的應用記錄一起保存。重試不確定結果時,使用相同的請求識別碼。

pass_label · text

所選項目的目前值。於相關事件之後讀取。empty,access,event,coupon,membership

receipt_id · text

此項目或操作的識別碼。請將其與相應的應用記錄一起保存。重試不確定結果時,使用相同的請求識別碼。

error_code · text

上一次操作的錯誤資訊。顯示有用的訊息並提供相關的重試。

is_busy · yes/no

工作仍在進行中。請在開始其他操作前稍候。

is_scanning · yes/no

所選項目的當前值。於相關事件後讀取。

torch_enabled · yes/no

所選項目的當前值。於相關事件後讀取。

scan_source · text

所選項目的目前值。於相關事件之後讀取。empty,camera,fixture

pending_redemption · yes/no

所選項目的當前值。於相關事件後讀取。

scanned_pass_token · text

所選項目的當前值。於相關事件後讀取。

事件

scanner_started

當此事件發生時,從同一元素讀取相關狀態。

scanner_paused

當此事件發生時,從同一元素讀取相關狀態。

scanner_cancelled

當此事件發生時,從同一元素讀取相關狀態。

permission_denied

當此事件發生時,從同一元素讀取相關狀態。

pass_scanned

當此事件發生時,從同一元素讀取相關狀態。

validation_started

當此事件發生時,從同一元素讀取相關狀態。

validation_completed

當此事件發生時,從同一元素讀取相關狀態。

redemption_started

當此事件發生時,從同一元素讀取相關狀態。

pass_redeemed

當此事件發生時,從同一元素讀取相關狀態。

redemption_rejected

當此事件發生時,從同一元素讀取相關狀態。

redemption_pending

當此事件發生時,從同一元素讀取相關狀態。

fixture_decoded

當此事件發生時,從同一元素讀取相關狀態。

qr_error

當此事件發生時,從同一元素讀取相關狀態。

開發者常問問題

這兩個權限設定代表什麼意思?

標示允許員工建立或撤銷通行證的使用者是/否欄位名稱。範例/預設值:qr_pass_issuer。請在此填入欄位名稱,而非是或否。只有授權的管理員才能變更此使用者的權限。標示允許員工檢查並確認使用的使用者是/否欄位名稱。範例/預設值:qr_staff。票券持有人不需要此權限。請將其排除於公開註冊與個人資料表單之外。

同一位員工可以同時建立與檢查通行證嗎?

可以,只要授權的管理員給予該員工兩項權限。這不需要額外的專案金鑰。顧客通常不需要任何權限。不要讓使用者自行指派這些權限。

為什麼在掃描後還要執行檢查?

掃描會讀取代碼。檢查則詢問通行證是否可用而不消耗其單次使用資格。工作人員可以先審核訂單。只有獨立的 Confirm QR redemption 動作會使用一次通行證。

訂閱如何運作?

計畫價格:在 Bubble 中安裝此插件為免費。BestPlugins 存取需為每個插件在每個 Bubble 應用專案中分別訂閱:7 天免費,之後每月 US$1.50。Development 與 Live 已包含。操作次數沒有固定上限;檔案大小與功能限制仍然適用。結帳尚未開放。啟用畫面將顯示首次計費日期與取消條款。

相關指南

Marketplace 發布待處理

論壇指南未發佈

如需協助,請告訴我們您使用的插件與裝置、嘗試的操作以及發生的情況。請使用不含個人資料的範例。切勿分享您的金鑰或私人檔案。