Google 월렛에서 Motics 티켓의 이동 및 연결 해제 절차
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
이 페이지에서는 Motics 티켓의 이동 및 연결 해제 티켓 흐름을 구현하는 방법을 설명합니다. 우수한 사용자 환경을 제공하려면 사용자가 발급기관에서 정의한 특정 한도 내에서 Motics 티켓을 한 기기에서 다른 기기로 이동할 수 있어야 합니다. 발급기관에서 티켓을 하나의 기기로 제한해야 합니다. 사용자는 티켓을 새 기기에 저장하기 전에 원본 티켓을 삭제해야 합니다. 사용자가 기기를 분실하여 원래 티켓을 삭제할 수 없는 경우 발급기관은 이전 기기에서 티켓을 연결 해제해야 합니다.
이동 및 연결 해제 흐름 요구사항
이동 및 연결 해제 흐름은 다음 요구사항을 충족해야 합니다.
- Motics 티켓은 한 번에 하나의 기기에서만 사용할 수 있어야 합니다.
- 다음과 같은 경우 사용자는 Motics 티켓을 새 기기로 이동할 수 있어야 합니다.
- 이전 기기에 대한 액세스(예: 새 기기로 업그레이드)
- 기기를 분실하거나 도난당한 경우와 같이 이전 기기에 액세스할 수 없습니다.
- 이동 또는 티켓 활성화 횟수는 PTO의 비즈니스 요구사항에 정의된 대로 Motics 티켓 발급기관 측의 적절한 제어를 통해 제한되어야 합니다.
사용자 환경
이 섹션에서는 사용자가 Motics 티켓을 이동하려고 할 때 이전 기기에 계속 액세스할 수 있는지에 따른 사용자 환경의 두 가지 시나리오를 자세히 설명합니다.
사용자가 이전 기기에 액세스할 수 있음
이 경우 사용자는 이전 기기에서 이동 흐름을 시작할 수 있습니다.
- 사용자가 이전 기기의 월렛 앱에서 Motics 티켓을 삭제합니다.
- 사용자가 새 기기에서 발급기관의 확인 이메일을 확인하거나 티켓 판매 웹샵 또는 포털에 로그인한 후 'Google 월렛에 저장' 링크를 클릭하여 티켓을 Google 월렛 앱에 다시 저장합니다.
사용자가 이전 기기에 액세스할 수 없음
사용자가 이전 기기에 액세스할 수 없는 경우 웹샵 티켓 판매 포털에서 연결 해제 및 이동 흐름을 시작하거나 발급기관의 고객 지원팀에 문의하여 사용자 대신 연결 해제 흐름을 시작할 수 있습니다.
- 사용자가 고객 서비스에 지원을 요청하라는 안내가 포함된 발급기관의 확인 이메일을 찾거나 발급기관 웹사이트 또는 티켓 판매 포털에서 연결 해제 흐름을 시작합니다. 티켓 판매 포털의 연결 해제 버튼일 수 있습니다.
- 발급기관이 사용자를 대신하여 이전 기기에서 티켓을 연결 해제합니다(자세한 내용은 발급기관의 책임 섹션 참고).
- 발급기관에서 티켓을 연결 해제하는 즉시 원래 기기에서 티켓을 사용할 수 없게 됩니다 (바코드가 스캔되지 않음).
- 발급기관은 이전 티켓을 차단 목록에 추가하여 검사 기기에서 더 이상 해당 티켓을 스캔할 수 없도록 해야 합니다.
- 티켓이 다시 온라인 상태가 되는 즉시 원래 기기에서 자동으로 삭제됩니다 (최선의 노력).
- 사용자가 새 기기에서 발급기관의 확인 이메일을 확인하거나 티켓 판매 웹샵 또는 포털에 로그인한 후 'Google 월렛에 저장' 링크를 클릭하여 티켓을 Google 월렛 앱에 다시 저장합니다.
발급기관의 책임
- 초기 설정 중에 발급기관은
multipleDevicesAndHoldersAllowedStatus=ONE_USER_ONE_DEVICE
를 사용하여 transitClass를 삽입해야 합니다.
- 발급기관이 구매 시 사용자에게 보내는 확인 이메일에는 티켓을 새 기기로 이동하는 방법에 대한 안내가 포함되어야 합니다.
- 확인 이메일에는 지원 프로세스의 도움말에 대한 티켓의 식별자가 포함되어야 합니다.
- 문의량을 최소로 유지하려면 발급기관의 웹샵 또는 티켓 포털에도 사용자가 티켓을 관리할 수 있는 연결 해제 버튼이 있어야 합니다.
- 발급기관은 티켓이 활성화될 수 있는 횟수를 제한할 책임이 있습니다. 이렇게 하면 사용자가 동일한 티켓을 기기 간에 (둘 다 월렛에서 동일한 계정으로 로그인) 무기한으로 왔다 갔다 하는 것을 방지할 수 있습니다.
- 발급기관은 동일한 objectId에 대해 활성화 엔드포인트가 호출된 횟수를 추적해야 하며 한도를 초과하면 활성화 요청을 거부해야 합니다.
- 각 발급기관에는 티켓이 이동할 수 있는 횟수에 대한 자체 규칙이 있으므로 Google은 발급기관이 티켓 이동 제한 조치를 처리하도록 요구합니다.
- 사용자가 고객 지원팀에 문의하여 티켓 연결을 해제하려는 경우:
- 사용자가 이전 기기에서 티켓을 삭제할 수 없는 경우 발급기관은 티켓의
objectId
에 대해 {hasLinkedDevice:false}
로 transitObject:patch
를 호출하여 티켓을 연결 해제합니다.
- 발급기관은 지정된 티켓의 objectId를 찾아야 합니다. 확인 이메일에서 사용자에게 제공된 식별자를 기반으로 조회해야 합니다.
- 사용자가 웹샵 또는 티켓 포털에서 연결 해제 절차를 시작하는 경우:
- 발급기관은 티켓의
objectId
에 대해 {hasLinkedDevice:false}
로 transitObject:patch
를 호출하여 티켓을 연결 해제합니다.
- 발급기관은 더 이상 검사 기기에서 해당 티켓을 스캔할 수 없도록 이전 티켓을 차단 목록에 추가해야 합니다.
Google의 책임
{hasLinkedDevice:false}
호출을 통한 transitObject:patch
수신에 대한 응답으로 Google은 Motics 서버의 기존 인증서 (있는 경우)를 취소합니다. 사용자가 원래 티켓이 있는 이전 기기를 아직 가지고 있는 경우 바코드가 온라인 상태이거나 다시 온라인 상태가 되는 한 이전 기기에서 삭제되므로 더 이상 작동하지 않습니다.
시퀀스 다이어그램
그림 1. Motics 티켓 연결 해제 흐름 
그림 1은 사용자가 더 이상 기존 기기에 액세스할 수 없을 때 티켓 연결을 해제하기 위해 발생하는 transitObject:patch
및 pruneTree()
호출을 보여줍니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-29(UTC)
[null,null,["최종 업데이트: 2025-08-29(UTC)"],[[["\u003cp\u003eMotics tickets are designed for single-device use, requiring users to move a ticket from their old device to a new one when switching devices.\u003c/p\u003e\n"],["\u003cp\u003eUsers with access to their old device can move a ticket by deleting it from the old device and then resaving it to their new device via a confirmation email or the issuer's platform.\u003c/p\u003e\n"],["\u003cp\u003eIf the old device is inaccessible, users must initiate an unlink flow through the issuer's customer support or online portal, after which they can resave the ticket to their new device.\u003c/p\u003e\n"],["\u003cp\u003eIssuers are responsible for implementing controls to limit the number of times a ticket can be moved and for unlinking tickets from lost or stolen devices using the \u003ccode\u003etransitObject:patch\u003c/code\u003e API call.\u003c/p\u003e\n"],["\u003cp\u003eGoogle assists in the unlink flow by revoking the old ticket's certificate and ensuring it's unusable, with the old ticket automatically deleted from the device when it comes online.\u003c/p\u003e\n"]]],["Motics ticket issuers must enable users to move tickets between devices, limiting usage to one device at a time. When a user has access to the old device, they must delete the ticket before saving it to a new device. Without access, the issuer must unlink the ticket via a web portal or customer support. The issuer updates the ticket status via an API call, which revokes the old device's ticket certificate, deletes the ticket from the old device and then should also denylist it to prevent it from being scanned. The issuer is also responsible for limiting the number of ticket moves.\n"],null,["# Move & Unlink Flow for Motics tickets in Google Wallet\n\nThis page describes implementing a move and unlink ticket flow for Motics\ntickets. To provide a good user experience, a user should be able to move their\nMotics ticket from one device to another, within certain limits defined by the\nissuer. The issuer has to restrict a ticket to one device. The user must delete\nthe original ticket before saving it to a new device. If the user cannot delete\nthe original ticket (perhaps because they lost the device), the issuer must\nunlink the ticket from the old device.\n\nMove \\& Unlink Flow Requirements\n--------------------------------\n\nThe Move \\& Unlink flow has to fulfil the following requirements:\n\n- A Motics ticket must only be usable on one device at a time.\n- The user must be able to move the Motics ticket to a new device in these cases:\n - Access to old device, for example when upgrading to a new device.\n - No access to old device, for example when a device is lost or stolen.\n- The number of moves or ticket activations should be limited by suitable controls on the Motics ticket issuer side, as defined by the PTO's business requirements.\n\nUser Experience\n---------------\n\nThis section describes in more detail the two different scenarios for the User\nExperience, depending on whether the user still has access to their old device\nwhen attempting to move a Motics ticket.\n\n### User has access to old device\n\nIn such cases, the user can initiate the move flow from their old device:\n\n1. The user deletes the Motics ticket from the Wallet app on their old device.\n2. The user finds the confirmation email from the issuer on their new device or logs in to the ticketing webshop or portal and clicks a Save to Google Wallet link to resave the ticket to the Google Wallet app.\n\n### User does not have access to old device\n\nWhen the user does not have access to their old device, they need to initiate\nthe unlink and move flow from either the webshop ticketing portal, or by\ncontacting the customer support of the issuer, that can initiate the unlink flow\non the user's behalf.\n\n1. The user finds the confirmation email from the issuer with instructions to call customer service for assistance or starts an unlink flow from the issuer website or ticketing portal. This could be an unlink button on the ticketing portal.\n2. The issuer unlinks the ticket from the old device on behalf of the user (more details in the [Issuer Responsibilities](#issuer-responsibilities) section).\n3. The ticket will be unusable (barcode won't scan) on the original device as soon as the issuer unlinks it.\n4. The issuer should denylist the old ticket, to ensure it can no longer be scanned by inspection devices.\n5. The ticket will automatically be deleted from the original device as soon as it comes online again (best-effort).\n6. The user finds the confirmation email from the issuer on their new device or logs in to the ticketing webshop or portal and clicks a Save to Google Wallet link to resave the ticket to the Google Wallet app.\n\nIssuer Responsibilities\n-----------------------\n\n- During initial setup the issuer must [insert the transitClass](/wallet/tickets/transit-passes/qr-code/motics/technical-details#transitClassInsert) with `multipleDevicesAndHoldersAllowedStatus=ONE_USER_ONE_DEVICE`.\n- The confirmation email that the issuer sends to the user at purchase time has to contain instructions for how to move the ticket to a new device.\n- The confirmation email has to contain an identifier for the ticket to the help in the support process.\n- To keep contact volume to a minimum, the issuer should also have an unlink button on their webshop or ticket portal where a user can manage their ticket.\n- The issuer is responsible for limiting the number of times a ticket can be activated. This is to avoid users moving the same ticket back and forth between devices (both logged into the same account on Wallet) indefinitely.\n - The issuer has to keep track of how many times the activation endpoint is called for the same objectId, and reject the activation request if it exceeds the limit.\n - Since each issuer has its own rules on how many times a ticket can be moved, Google requires that issuers handle limiting ticket moves on their end.\n- If the user wants to unlink the ticket through contacting customer support:\n - If the user cannot remove the ticket from the old device, the issuer unlinks the ticket by calling `transitObject:patch` with `{hasLinkedDevice:false}` for the `objectId` of the ticket.\n - The issuer will need to find the objectId for the given ticket. They should look this up based on the identifier given to the user in the confirmation email.\n- If the user initiates the unlink flow on the webshop or ticket portal:\n - The issuer unlinks the ticket by calling `transitObject:patch` with `{hasLinkedDevice:false}` for the `objectId` of the ticket.\n- The issuer should denylist the old ticket, so that it can no longer be scanned by inspection devices.\n\nGoogle Responsibilities\n-----------------------\n\nIn response to receiving the `transitObject:patch` with\n`{hasLinkedDevice:false}` call, Google will revoke the existing certificate (if\nthere is one) with the Motics server. If the user does still have their old\ndevice with the original ticket, the barcode will no longer work as it will be\ndeleted from the old device as long as it is online or comes online again.\n\n### Sequence Diagram\n\n**Figure 1.** Motics Ticket Unlink Flow\n\nFigure 1 shows the `transitObject:patch` and `pruneTree()` calls that take place\nto unlink a ticket when the user no longer has access to their old device."]]