Google 钱包中 Motics 票券的移动和取消关联流程

本页介绍了如何为 Motics 门票实现转移和取消关联工单流程。为了提供良好的用户体验,用户应该能够在发卡机构规定的特定限制内,将其 Motics 票券从一台设备转移到另一台设备。发卡机构必须将票券限制为仅在一台设备上发出。用户必须先删除原始票券,然后才能将其保存到新设备。如果用户无法删除原始票证(可能是因为他们丢失了设备),颁发者必须解除该票证与旧设备之间的关联。

移动和解除关联流程必须满足以下要求:

  • Motics 门票一次只能在一台设备上使用。
  • 在以下情况下,用户必须能够将 Motics 票券转移到新设备:
    • 使用旧设备(例如升级到新设备时)。
    • 无法访问旧设备,例如当设备丢失或被盗时。
  • 根据 PTO 的业务需求,应根据 Motics 票务公司方的适当控制措施,对移动或门票激活次数进行限制。

用户体验

本部分更详细地介绍了用户体验的两种不同场景,具体取决于用户在尝试移动 Motics 工单时是否仍然可以访问旧设备。

用户有权访问旧设备

在这种情况下,用户可以从旧设备启动移动流程:

  1. 用户从旧设备上的钱包应用中删除了 Motics 票券。
  2. 用户在新设备上找到发卡机构发送的确认电子邮件,或者登录票务网站商店或门户,然后点击“保存到 Google 钱包”链接将票券重新保存到 Google 钱包应用。

用户无权访问旧设备

当用户无法访问其旧设备时,他们需要从网上商店工单门户启动解除关联和移动流程,或者联系发卡机构的客户支持团队(可以代表用户启动解除关联流程)启动解除关联流程。

  1. 用户找到发卡机构发来的确认电子邮件,其中包含如何致电客户服务团队寻求帮助,或者从发卡机构网站或工单门户启动解除关联流程。这可以是票务门户上的解除关联按钮。
  2. 发卡机构代表用户解除票据与旧设备的关联(如需了解详情,请参阅发卡机构责任部分)。
  3. 发卡机构解除关联后,此票券很快就会无法在原始设备上使用(无法扫描条形码)。
  4. 发卡机构应将旧票据列入拒绝名单,确保检查设备无法再对其进行扫描。
  5. 一旦票券重新连接到网络,系统会立即自动将其从原始设备中删除(尽力而为)。
  6. 用户在新设备上找到发卡机构发送的确认电子邮件,或者登录票务网站商店或门户,然后点击“保存到 Google 钱包”链接将票券重新保存到 Google 钱包应用。

发卡机构责任

  • 在初始设置期间,发卡机构必须使用 multipleDevicesAndHoldersAllowedStatus=ONE_USER_ONE_DEVICE 插入 transitClass
  • 发卡机构在购买时向用户发送的确认电子邮件必须包含如何将票券转移到新设备的说明。
  • 确认电子邮件必须包含支持流程中帮助工单的标识符。
  • 为了尽可能减少联系数量,发卡机构还应该在其网店或票券门户上添加一个“解除关联”按钮,以便用户管理其票据。
  • 发卡机构负责限制票券的可激活次数。这是为了避免用户在设备(均登录了 Google 钱包的同一帐号)之间无限期地移动同一票券。
    • 颁发者必须跟踪针对同一对象 ID 调用激活端点的次数,并在超出限制时拒绝激活请求。
    • 由于每个发卡机构对票券的移动次数都有自己的规则,因此 Google 要求发卡机构自行处理限制票据移动的操作。
  • 如果用户想要通过联系客户服务来解除与工单的关联,请执行以下操作:
    • 如果用户无法从旧设备中移除票券,则发卡机构会使用 {hasLinkedDevice:false} 调用 transitObject:patch 以解除票据的关联,从而获取票据的 objectId 信息。
      • 发卡机构需要找到指定票据的对象 ID。他们应根据确认电子邮件中提供给用户的标识符进行查询。
  • 如果用户在网店或工单门户上发起解除关联流程,请执行以下操作:
    • 发卡机构使用 {hasLinkedDevice:false} 调用 transitObject:patch 以解除票据的关联,从而解除票据 objectId 的关联。
  • 发卡机构应将旧票据列入拒绝名单,以便检查设备无法再对其进行扫描。

Google 责任

在通过 {hasLinkedDevice:false} 调用收到 transitObject:patch 时,Google 将撤消 Motics 服务器的现有证书(如果有)。如果用户的旧设备在原始票券中仍在使用,条形码将失效,因为只要该设备处于在线状态或重新连接到网络,条形码就会从旧设备中删除。

序列图

图 1. Motics Ticket 取消关联流程 Motics 票卡取消关联流程

图 1 显示了用户无法再访问旧设备时用于取消关联工单的 transitObject:patchpruneTree() 调用。