Move & Unlink Flow برای بلیط‌های Motics در Google Wallet

این صفحه پیاده‌سازی جریان بلیط انتقال و لغو پیوند را برای بلیط‌های Motics توضیح می‌دهد. برای ارائه یک تجربه کاربری خوب، یک کاربر باید بتواند بلیط Motics خود را از یک دستگاه به دستگاه دیگر، در محدوده های مشخصی که توسط صادرکننده تعریف شده است، منتقل کند. صادرکننده باید بلیط را به یک دستگاه محدود کند. کاربر باید بلیط اصلی را قبل از ذخیره آن در دستگاه جدید حذف کند. اگر کاربر نتواند بلیط اصلی را حذف کند (شاید به این دلیل که دستگاه را گم کرده است)، صادرکننده باید بلیط را از دستگاه قدیمی جدا کند.

جریان Move & Unlink باید شرایط زیر را برآورده کند:

  • بلیط Motics باید فقط در یک دستگاه در یک زمان قابل استفاده باشد.
  • در این موارد کاربر باید بتواند بلیط Motics را به دستگاه جدیدی منتقل کند:
    • دسترسی به دستگاه قدیمی، به عنوان مثال هنگام ارتقاء به دستگاه جدید.
    • عدم دسترسی به دستگاه قدیمی، به عنوان مثال هنگامی که یک دستگاه گم شده یا به سرقت رفته است.
  • تعداد جابه‌جایی‌ها یا فعال‌سازی بلیت‌ها باید با کنترل‌های مناسب در سمت صادرکننده بلیط Motics محدود شود، همانطور که توسط الزامات تجاری PTO تعریف شده است.

تجربه ی کاربر

این بخش با جزئیات بیشتری دو سناریو مختلف برای تجربه کاربری را شرح می‌دهد، بسته به این که آیا کاربر همچنان به دستگاه قدیمی خود در هنگام تلاش برای جابجایی بلیط Motics دسترسی دارد یا خیر.

کاربر به دستگاه قدیمی دسترسی دارد

در چنین مواردی، کاربر می تواند جریان حرکت را از دستگاه قدیمی خود آغاز کند:

  1. کاربر بلیط Motics را از برنامه Wallet در دستگاه قدیمی خود حذف می کند.
  2. کاربر ایمیل تأیید صادرکننده را در دستگاه جدید خود پیدا می‌کند یا به فروشگاه اینترنتی فروش بلیط یا پورتال وارد می‌شود و برای ذخیره مجدد بلیط در برنامه Google Wallet، روی پیوند ذخیره در Google Wallet کلیک می‌کند.

کاربر به دستگاه قدیمی دسترسی ندارد

زمانی که کاربر به دستگاه قدیمی خود دسترسی ندارد، باید از درگاه فروش بلیط وب‌شاپ یا با تماس با پشتیبانی مشتری صادرکننده، که می‌تواند جریان لغو پیوند را از طرف کاربر شروع کند، لغو پیوند و جریان را منتقل کند.

  1. کاربر ایمیل تأیید صادرکننده را با دستورالعمل‌هایی برای تماس با خدمات مشتری برای کمک پیدا می‌کند یا یک جریان لغو پیوند از وب‌سایت صادرکننده یا پورتال صدور بلیت را شروع می‌کند. این می تواند یک دکمه لغو پیوند در پورتال بلیط فروشی باشد.
  2. صادرکننده از طرف کاربر، بلیت را از دستگاه قدیمی جدا می‌کند (جزئیات بیشتر در بخش مسئولیت‌های صادرکننده ).
  3. به محض اینکه صادرکننده آن را لغو پیوند کند، بلیط روی دستگاه اصلی غیرقابل استفاده خواهد بود (بارکد اسکن نمی شود).
  4. صادرکننده باید بلیط قدیمی را رد کند تا مطمئن شود دیگر نمی‌تواند توسط دستگاه‌های بازرسی اسکن شود.
  5. بلیط به محض اینکه دوباره آنلاین شد به طور خودکار از دستگاه اصلی حذف می شود (بهترین تلاش).
  6. کاربر ایمیل تأیید صادرکننده را در دستگاه جدید خود پیدا می‌کند یا به فروشگاه اینترنتی فروش بلیط یا پورتال وارد می‌شود و برای ذخیره مجدد بلیط در برنامه Google Wallet، روی پیوند ذخیره در Google Wallet کلیک می‌کند.

مسئولیت های صادرکننده

  • در طول راه‌اندازی اولیه، صادرکننده باید کلاس transit را با multipleDevicesAndHoldersAllowedStatus=ONE_USER_ONE_DEVICE وارد کند.
  • ایمیل تأییدی که صادرکننده در زمان خرید برای کاربر ارسال می‌کند باید حاوی دستورالعمل‌هایی برای نحوه انتقال بلیط به دستگاه جدید باشد.
  • ایمیل تایید باید حاوی شناسه بلیط کمک در فرآیند پشتیبانی باشد.
  • برای به حداقل رساندن حجم تماس، صادرکننده باید یک دکمه لغو پیوند در فروشگاه اینترنتی یا پورتال بلیط خود داشته باشد که در آن کاربر بتواند بلیط خود را مدیریت کند.
  • صادرکننده مسئول محدود کردن تعداد دفعات فعال‌سازی بلیط است. این کار برای جلوگیری از جابجایی یک بلیط یکسان بین دستگاه ها (هر دو وارد یک حساب کاربری در Wallet) به طور نامحدود توسط کاربران انجام می شود.
    • صادرکننده باید تعداد دفعاتی که نقطه پایانی فعالسازی برای همان objectId فراخوانی شده است، پیگیری کند و اگر از حد مجاز فراتر رفت، درخواست فعالسازی را رد کند.
    • از آنجایی که هر صادرکننده قوانین خاص خود را در مورد چند بار جابجایی بلیط دارد، Google از صادرکنندگان می‌خواهد که حرکت‌های محدودکننده بلیط را در انتهای خود انجام دهند.
  • اگر کاربر بخواهد از طریق تماس با پشتیبانی مشتری، پیوند بلیط را لغو کند:
    • اگر کاربر نتواند بلیت را از دستگاه قدیمی حذف کند، صادرکننده با فراخوانی transitObject:patch با {hasLinkedDevice:false} برای objectId بلیط، پیوند بلیط را لغو می‌کند.
      • صادرکننده باید ObjectId را برای بلیط داده شده پیدا کند. آنها باید این را بر اساس شناسه ای که در ایمیل تأیید به کاربر داده شده است، جستجو کنند.
  • اگر کاربر جریان لغو پیوند را در فروشگاه اینترنتی یا پورتال بلیط آغاز کند:
    • صادرکننده با فراخوانی transitObject:patch با {hasLinkedDevice:false} برای objectId بلیط، پیوند بلیط را لغو می‌کند.
  • صادرکننده باید بلیط قدیمی را رد کند تا دیگر توسط دستگاه های بازرسی قابل اسکن نباشد.

مسئولیت های گوگل

در پاسخ به دریافت transitObject:patch با تماس {hasLinkedDevice:false} ، Google گواهی موجود (در صورت وجود) را با سرور Motics لغو خواهد کرد. اگر کاربر هنوز دستگاه قدیمی خود را با بلیط اصلی داشته باشد، بارکد دیگر کار نخواهد کرد زیرا تا زمانی که آنلاین است یا دوباره آنلاین می شود از دستگاه قدیمی حذف می شود.

نمودار توالی

شکل 1. جریان Unlink Ticket Motics جریان لغو پیوند بلیط Motics

شکل 1 فراخوانی های transitObject:patch و pruneTree() را نشان می دهد که زمانی که کاربر دیگر به دستگاه قدیمی خود دسترسی ندارد، پیوند یک بلیط را قطع می کند.