
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.
مستندات بررسیشده 6 نوامبر 2026
مثالهای عملی
مجوز یکبار مصرف برای رویداد همان روز
یک اسکرینشات از مقدار عادی QR میتواند در غیر این صورت در بیش از یک ورودی دوباره استفاده شود.
برنامه شما یک رکورد پذیرش و یک صدور ثابت `request_id` را ذخیره میکند؛ از `label=event` تنظیمشده و `ttl_seconds` در چارچوب قرارداد 1–86400‑ثانیه استفاده کنید.
یک صادرکننده مجاز Issue QR pass را اجرا میکند و بهصورت خصوصی QR بازگرداندهشده را تحویل میدهد. کارکنان اسکن → Check QR pass → تأیید فقط در صورتی که `ok=yes` و `status=available` → Confirm QR redemption با یک شناسه درخواست ثابت ذخیرهشده باشد.
فقط `status=redeemed` بهاضافه `receipt_id` اجازه میدهد رسید پذیرش برنامه شما معتبر باشد. مرجع پاس/رسید را در پذیرش ذخیره کنید؛ محتویات QR را در تجزیه و تحلیلها افشا نکنید.
برای `outcome_unknown`، همان درخواست را با کاربر/محیط/پاس یکسان بازیابی کنید؛ هرگز شناسه تأیید جدیدی تولید نکنید. expired، revoked و وضعیتهای قبلاً استفادهشده را بهعنوان نتایج متمایز مدیریت کنید.
برنامهریزیشده. اسکن و بررسی پاس را استفاده نمیکنند؛ فقط تأیید صریح پاس را مصرف میکند.
در یک بار در پیشخوان شریک، یک مزیت کوتاهمدت را بازخرید کنید
یک شریک به نتیجهٔ تأیید شدهٔ استفادهشده/استفادهنشده نیاز دارد، نه اینکه به تصویر QR یا انیمیشن صفحه اعتماد کند.
`label=coupon`؛ رکورد مزیت برنامه، صلاحیت و بازهٔ زمانی کوتاه اعتبار را پیش از اقدام صدور مجاز تعریف میکند.
پس از بررسی صلاحیت برنامهٔ شما، فقط یک پاس صادر کنید. در پیشخوان، Check QR pass قابلاستفاده بودن پاس را بدون مصرف آن نشان میدهد. پس از تأیید تحویل مزیت توسط کارمند، Confirm QR redemption را اجرا کنید.
رکورد مزیت شما ممکن است `receipt_id` و زمان تأیید شدهٔ بازخرید پس از `status=redeemed` را ذخیره کند. افزونه وضعیت پاس را مدیریت میکند؛ برنامهٔ شما مزیت و رابطه با مشتری را مدیریت میکند.
اگر مزیتی قبل از استفاده لغو شود، صادرکنندهٔ مجاز همان میتواند Revoke QR pass را با استفاده از `pass_id` انجام دهد. تنها از `ok=yes` برای اعلام بازپرداخت یا بازخرید موفق استفاده نکنید.
برنامهریزیشده. اسکن و بررسی پاس را استفاده نمیکنند؛ فقط تأیید صریح پاس را مصرف میکند.
تأیید دریافت تجهیزات یا سفارش در همان روز
یک جریان کاری پرسنل باید اسکن مرجع دریافت کالا را از تحویل واقعی یک آیتم متمایز کند.
رکورد مجموعهٔ متعلق به برنامهٔ شما، مجوز، آیتم موردنظر و شناسههای ثابت درخواست صدور/بازخرید را نگه میدارد؛ از پاس کوتاهمدت `label=access` استفاده کنید.
پس از اینکه برنامهٔ شما اجازهٔ دریافت کالا را میدهد، Issue QR pass. پرسنل اسکن و بررسی میکنند، مجموعهٔ مطابقتیافته را در برنامهٔ خود بازرسی مینمایند، سپس بهصورت صریح تحویل و Confirm QR redemption را تأیید میکنند.
فقط پس از دریافت تأیید شده `redeemed` باید جریان کاری شما مجموعه را به وضعیت تحویل داده شده تنظیم کند. `receipt_id` را به عنوان پیوند به نتیجه پاس نگه دارید.
یک اسکن تکراری ممکن است already_used را برگرداند؛ رکورد موجود برنامه را به جای تحویل آیتم دیگر نمایش دهید. تأیید نامطمئنی را با همان شناسه و ورودیها بازیابی کنید.
برنامهریزیشده. اسکن و بررسی پاس را استفاده نمیکنند؛ فقط تأیید صریح پاس را مصرف میکند.
آنچه اکنون کار میکند
بتای خصوصی. اسکنر فعلی دارای کنترلهای دوربین و دسترسی است. ایجاد، بررسی و تأیید پاسهای تکبار مصرف برنامهریزی شدهاند و هنوز برای استفاده در برنامهٔ شما آماده نیستند.
ساخت گردشکار
برنامهریزیشده
گردش کار برنامهریزیشده. هنوز در نسخه بتای فعلی در دسترس نیست.
این مثالها از رکوردهای برنامهای مانند Lesson، Message و Order استفاده میکنند. آنها را با انواع داده و نامهای عنصر خود جایگزین کنید. آدرسهای رسانهای نمونه باید با فایلهای خود جایگزین شوند.
برنامهریزیشده: یک کارمند مجاز از Issue QR pass برای ورود یا Order استفاده میکند. مثال: label=event، ttl_seconds=900، environment=development. برای آن مورد request_id ثابت را نگه دارید و pass_id را همراه با رکورد ذخیره کنید.
QR بازگرداندهشده را به دارنده موردنظر نشان دهید. پرسنل آن را اسکن میکند. در جریان کاری پاس برنامهریزیشده، workflow_mode=yes را تنظیم کنید و پس از pass_scanned، scanned_pass_token را بخوانید. این تنظیمات جریان کاری پاس در اسکنر فعلی در دسترس نیستند.
Check QR pass را با pass_token = QR Scanner's scanned_pass_token اجرا کنید. بدون استفاده از پاس بررسی میکند. برای status=available، جزئیات سفارش یا ورودی مطابقتدار را نشان دهید تا پرسنل بتوانند آن را بررسی کنند.
فقط یک دکمه جداگانه Confirm Confirm QR redemption را با همان pass_token، request_id ثابت و confirm=yes اجرا میکند. در status=redeemed، receipt_id را ذخیره کنید و آن سفارش یا ورودی را کامل علامت بزنید.
already_used، expired، revoked یا invalid به معنای ممنوع بودن ورود و تحویل سفارش است. یک اسکن یا یک بررسی موفق به تنهایی هرگز تراکنش را کامل نمیکند.
یکبار پیکربندی کنید
پروژه برنامه Bubble خود را در BestPlugins → Dashboard → Plugins ایجاد یا انتخاب کنید. 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. یک دارنده بلیت نیازی به این مجوز ندارد. آن را از فرمهای ثبتنام عمومی و پروفایل حذف کنید.
یکبار پیکربندی کنید
- پروژه برنامه Bubble خود را در BestPlugins → Dashboard → Plugins ایجاد یا انتخاب کنید.
- این افزونه را انتخاب کنید و کلید پروژه آن را کپی کنید.
- Bubble → Plugins → Xodera QR Passes Native را باز کنید؛ کلید را در project_api_key بچسبانید و ذخیره کنید.
- عنصر را اضافه کنید، دادههای برنامه خود را انتخاب کنید و گردش کار زیر را بسازید.
- در حال حاضر دسترسی به بتای خصوصی فقط موجود است. نصب عمومی و فعالسازی پرداختی هنوز باز نیستند.
نصب و اشتراک
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/noCheck 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 · textConfirm 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/noRevoke 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 انتشار در انتظار
راهنمای انجمن منتشر نشده است
برای دریافت کمک، به ما بگویید از کدام افزونه و دستگاه استفاده میکنید، عملی که امتحان کردید و چه اتفاقی افتاد. از مثالی بدون دادههای شخصی استفاده کنید. هرگز کلید یا فایلهای خصوصی خود را به اشتراک نگذارید.