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 레코드와 안정적인 발행 `request_id`를 저장합니다; 관리된 `label=event`와 `ttl_seconds`를 1–86400 초 계약 내에서 사용하십시오.

권한이 있는 발행자가 Issue QR pass를 실행하고 반환된 QR를 비공개로 전달합니다. 직원이 스캔 → Check QR pass → `ok=yes`이고 `status=available`일 때만 확정 → 저장된 안정적인 요청 ID로 Confirm QR redemption 실행.

`status=redeemed`와 `receipt_id`가 함께 있어야만 앱에서 입장 확인 기록을 만들 수 있습니다. Admission에 패스와 확인 기록의 참조를 저장하고 QR 내용을 분석 서비스에 노출하지 마세요.

`outcome_unknown`에 대해 동일한 사용자/환경/패스로 같은 요청을 복구하십시오; 새로운 확인 ID를 생성하지 마십시오. expired, revoked 및 이미 사용된 상태를 별개의 결과로 처리하십시오.

예정입니다. 스캔과 상태 조회는 패스를 사용하지 않습니다. 명시적인 사용 확정만 패스를 사용합니다.

파트너 카운터에서 단기간 혜택을 한 번 사용하십시오

파트너는 QR 이미지나 화면 애니메이션을 신뢰하는 대신 확인된 사용/미사용 결과가 필요합니다.

`label=coupon`; 앱의 Benefit 레코드는 누가 혜택을 받을 자격이 있는지와 짧은 유효 기간을 정하며, 이후 권한이 있는 발행 작업이 수행됩니다.

앱의 자격 확인 후에만 패스를 발행하십시오. 카운터에서 Check QR pass는 소모 없이 가용성을 표시합니다. 직원이 혜택 전달을 확인한 후 Confirm QR redemption를 실행하십시오.

Benefit 레코드는 `status=redeemed` 후 `receipt_id`와 확정된 사용 시각을 저장할 수 있습니다. 플러그인은 패스 상태를 관리하고, 앱은 혜택과 고객 관계를 관리합니다.

혜택이 사용 전에 취소되면 해당 패스를 발행한 권한 있는 동일한 발행자가 해당 `pass_id`로 Revoke QR pass를 실행할 수 있습니다. `ok=yes`만으로 환불이나 성공적인 패스 사용을 알리지 마세요.

예정입니다. 스캔과 상태 조회는 패스를 사용하지 않습니다. 명시적인 사용 확정만 패스를 사용합니다.

당일 장비 또는 주문 픽업을 확인하십시오

직원 워크플로는 수령 참조를 스캔하는 것과 실제로 물품을 건네주는 것을 구분해야 합니다.

앱이 소유한 Collection 레코드는 권한, 대상 물품, 발행 및 사용 확정에 대한 별도의 안정적인 요청 ID를 보관합니다. 유효 기간이 짧은 `label=access` 패스를 사용하세요.

앱이 물품 수령을 허가한 후 Issue QR pass를 실행하세요. 직원은 스캔하고 Check를 수행하여 앱의 일치하는 Collection을 검토한 다음, 물품을 건넸음을 명시적으로 확인하고 Confirm QR redemption를 실행합니다.

확정된 `redeemed` 사용 기록이 있을 때만 워크플로가 Collection을 물품 전달 완료로 표시해야 합니다. `receipt_id`를 패스 결과에 대한 링크로 보관하세요.

반복 스캔은 already_used를 반환할 수 있습니다; 다른 아이템을 전달하는 대신 기존 앱 레코드를 표시하십시오. 동일한 ID와 입력으로 불확실한 확인을 복구하십시오.

예정입니다. 스캔과 상태 조회는 패스를 사용하지 않습니다. 명시적인 사용 확정만 패스를 사용합니다.

현재 작동 중인 항목

비공개 베타입니다. 현재 스캐너에는 카메라 및 권한 컨트롤이 있습니다. 일회용 패스의 생성, 상태 조회 및 사용 확정 기능은 계획 중이며 아직 앱에서 사용할 수 없습니다.

워크플로우 만들기

예정

예정된 워크플로우. 현재 베타에서는 아직 사용할 수 없습니다.

이 예제들은 Lesson, Message 및 Order와 같은 앱 레코드를 사용합니다. 이를 귀하의 데이터 유형 및 요소 이름으로 교체하십시오. 예시 미디어 주소는 귀하의 파일로 교체해야 합니다.

  1. 예정: 권한이 있는 직원이 Admission 또는 Order에 Issue QR pass를 사용합니다. 예시: 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. 별도의 확인 버튼만이 동일한 pass_token와 안정적인 request_id, confirm=yes를 사용하여 Confirm QR redemption를 실행합니다. status=redeemed에서 receipt_id를 저장하고 해당 주문 또는 입장을 완료로 표시하십시오.

  5. already_used, expired, revoked 또는 invalid이면 입장을 허용하거나 주문 물품을 건네주면 안 됩니다. 스캔이나 성공적인 Check만으로는 거래가 완료되지 않습니다.

워크플로우 다이어그램 — 앱 스크린샷이 아님

한 번만 설정

BestPlugins → Dashboard → Plugins에서 Bubble 앱 프로젝트를 만들거나 선택하십시오. Xodera QR Passes Native를 선택하고 키를 복사한 다음 Bubble → Plugins → Xodera QR Passes Native를 열어 project_api_key에 붙여넣으세요. 한 번 저장한 후 아래 액션을 사용하십시오. 각 프로젝트의 각 플러그인마다 고유한 키가 있습니다.

스캔에는 카메라 권한이 필요합니다. 일회용 패스의 경우, 누가 패스를 생성하고 누가 현관이나 수령 지점에서 확인할 수 있는지 결정하십시오. 일반 고객은 직원 역할이 필요하지 않습니다.

qr_issuer_permission_field

qr_pass_issuer · 패스를 생성하거나 취소할 수 있는 직원을 표시하는 User의 yes/no 필드 이름입니다. 예시/기본값: qr_pass_issuer. 여기에 yes나 no가 아니라 필드 이름을 입력하세요. 권한이 있는 관리자만 사용자의 이 권한을 변경해야 합니다.

qr_staff_permission_field

qr_staff · 패스 상태를 조회하고 사용을 확정할 수 있는 직원을 표시하는 User의 yes/no 필드 이름입니다. 예시/기본값: 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)
이 뷰가 열려 있는 동안 yes로 설정하고, 떠날 때 no로 설정하여 재생 또는 현재 작업이 중지될 수 있게 합니다.
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

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

개발자가 묻는 질문

두 권한 설정은 무엇을 의미합니까?

패스를 생성하거나 취소할 수 있는 직원을 표시하는 User의 yes/no 필드 이름입니다. 예시/기본값: qr_pass_issuer. 여기에 yes나 no가 아니라 필드 이름을 입력하세요. 권한이 있는 관리자만 사용자의 이 권한을 변경해야 합니다. 패스 상태를 조회하고 사용을 확정할 수 있는 직원을 표시하는 User의 yes/no 필드 이름입니다. 예시/기본값: qr_staff. 티켓 소유자는 이 권한이 필요하지 않습니다. 공개 회원가입 및 프로필 양식에 포함하지 마세요.

같은 직원이 패스를 생성하고 확인할 수 있나요?

예, 권한이 있는 관리자가 해당 직원에게 두 권한을 모두 부여하면 가능합니다. 별도의 프로젝트 키는 필요하지 않습니다. 일반 고객은 이 두 권한 중 어느 것도 필요하지 않습니다. 사용자가 스스로 이 권한을 부여하도록 하지 마세요.

스캔 후에 확인을 사용하는 이유는 무엇입니까?

스캔은 코드를 읽습니다. 확인은 패스를 사용하지 않고 이용 가능한지 여부를 묻습니다. 직원은 먼저 주문을 검토할 수 있습니다. 별도의 Confirm QR redemption 동작만이 패스를 한 번 사용합니다.

구독은 어떻게 작동합니까?

예정 가격: Bubble에 플러그인을 설치하는 것은 무료입니다. BestPlugins 접근은 각 Bubble 앱 프로젝트의 각 플러그인마다 별도의 구독이 필요합니다: 7일 무료, 이후 월 US$1.50. Development와 Live가 포함됩니다. 작업 수에 대한 고정 제한은 없으며 파일 크기 및 기능 제한은 여전히 적용됩니다. 결제는 아직 열리지 않았습니다. 활성화 화면에 첫 청구 날짜와 취소 조건이 표시됩니다.

관련 가이드

Marketplace 출시 대기 중

포럼 가이드가 게시되지 않음

도움을 받으려면 사용 중인 플러그인과 기기, 시도한 작업 및 발생한 상황을 알려 주세요. 개인 데이터가 없는 예시를 사용하십시오. 키나 개인 파일을 절대 공유하지 마세요.