패스 클래스 및 객체 개요

최종 사용자가 Google 월렛에 저장하도록 발급할 수 있는 패스는 대부분 패스 클래스와 패스 객체라는 두 가지 구성요소로 정의됩니다. 사용자에게 패스를 발급할 때마다 Google Wallet API에 구성할 패스 유형과 패스에 표시할 세부정보(예: 기프트 카드의 값 또는 티켓 소지자 이름)를 알려주는 패스 클래스와 패스 객체의 인스턴스가 모두 필요합니다.

Google Wallet API는 인스턴스를 만든 후 사용자에게 발급되는 패스(예: GiftCardClass, GiftCardObject, GenericClass, GenericObject)를 만드는 데 사용할 수 있는 사전 정의된 패스 클래스 및 패스 객체 집합을 제공합니다.

각 패스 클래스 및 패스 객체 인스턴스는 해당 패스 유형의 특정 사용 사례에 해당하는 필수 및 선택적 속성 집합을 갖는 JSON 객체로 정의됩니다.

패스 클래스

패스 클래스는 하나 이상의 패스를 만드는 데 사용되는 공유 템플릿으로 생각하면 됩니다. 사용자에게 발행할 것입니다. 패스 클래스는 포함될 공통 속성 집합을 정의합니다. 모든 패스에 적용됩니다

예를 들어 EventTicketClass의 다음 인스턴스는 예정된 이벤트(장소, 이벤트 이름, 발급기관, 날짜/시간)에 대해 발급된 모든 티켓에 공통된 필드를 정의합니다.

{
  "id": "ISSUER_ID.EVENT_CLASS_ID",
  "issuerName": "[TEST ONLY] Heraldic Event",
  "localizedIssuerName": {
    "defaultValue": {
      "language": "en-US",
      "value": "[TEST ONLY] Heraldic Event"
    }
  },
  "eventName": {
    "defaultValue": {
      "language": "en-US",
      "value": "Google Live"
    }
  },
  "venue": {
    "name": {
      "defaultValue": {
        "language": "en-US",
        "value": "Shoreline Amphitheater"
      }
    },
    "address": {
      "defaultValue": {
        "language": "en-US",
        "value": "ADDRESS_OF_THE_VENUE"
      }
    }
  },
  "dateTime": {
    "start": "2023-04-12T11:30"
  },
  "reviewStatus": "UNDER_REVIEW"
}
  

패스 클래스의 각 인스턴스에는 사용자가 지정하는 id 속성이 필요합니다. 이 클래스 ID 새 패스 객체를 만드는 데 사용할 때마다 참조하는 고유 식별자 역할을 합니다. 인스턴스를 만들 수 있습니다

패스 객체

패스 클래스의 인스턴스는 하나 이상의 리소스에서 사용할 공유 속성 집합을 지정합니다. 패스 객체는 특정 사용자에게 발급되는 특정 패스의 고유한 세부정보를 지정합니다.

예를 들어 이벤트 티켓 패스가 Google Wallet API로 생성되면 EventTicketObject 인스턴스에는 해당 티켓에 할당된 좌석의 속성이 포함됩니다. 이러한 값은 각 티켓에 대해 고유하기 때문입니다. 티켓이 발행되었습니다.

{
  "id": "ISSUER_ID.OBJECT_ID",
  "classId": "ISSUER_ID.EVENT_CLASS_ID",
  "state": "ACTIVE",
  "seatInfo": {
    "seat": {
      "defaultValue": {
        "language": "en-us",
        "value": "9"
      }
    },
    "row": {
      "defaultValue": {
        "language": "en-us",
        "value": "L"
      }
    },
    "section": {
      "defaultValue": {
        "language": "en-us",
        "value": "45"
      }
    },
    "gate": {
      "defaultValue": {
        "language": "en-us",
        "value": "7C"
      }
    }
  },
  "barcode": {
    "type": "BARCODE_TYPE_UNSPECIFIED",
    "value": "BARCODE_VALUE",
    "alternateText": ""
  }
}
  

패스 객체의 각 인스턴스에는 사용자가 지정하는 id 속성이 필요합니다. 이 객체 ID 는 사용자에게 패스를 발급할 때 참조하는 고유 식별자 역할을 합니다.

패스 클래스가 패스 객체와 작동하는 방식

패스 객체는 클래스 ID를 참조하거나 전체 패스 클래스 정의를 포함하여 패스 클래스의 인스턴스를 확장해야 합니다. 패스 클래스와 패스 객체 인스턴스 간의 관계 패스 클래스 인스턴스를 통해 발급된 모든 패스에 공통된 속성을 설정하고 업데이트할 수 있습니다. 패스 객체 인스턴스의 개별 패스에 고유한 및 속성을 제공합니다.

예를 들어 간단한 이벤트 티켓 패스의 다음 다이어그램은 공유 EventTicketClass에 정의된 필드와 EventTicketObject에 정의된 특정 티켓의 필드가 결합되어 최종 발급된 패스를 구성하는 방법을 보여줍니다. 패스 객체의 classId 속성에서 패스 클래스의 ID를 참조하는 방법을 확인하세요.

패스 클래스 인스턴스 인스턴스에 대한 변경사항은 모든 패스 객체 인스턴스에 즉시 전파됩니다. 확인할 수 있습니다 사용자는 패스 클래스 인스턴스에 대한 변경사항이 반영된 것을 확인할 수 있습니다. 다음번 동기화 시 Google 월렛 앱의 패스에 표시됩니다.

사용자의 Google 월렛에 패스 추가

사용자의 Google 월렛에 패스를 추가하려면 클레임이 포함된 JSON 웹 토큰 (JWT)을 만듭니다. 사용자의 Google 월렛에 저장될 패스 객체 인스턴스에 대해 귀하 (발급기관)가 만들고 있는 가장 중요한 것은 사용자에게 발급하는 패스 객체 인스턴스의 객체 ID입니다. JWT 그런 다음 Google 월렛에 추가 버튼 또는 Google 월렛에 추가 버튼을 통해 사용자에게 전달됩니다. 링크를 클릭합니다.

사용자가 발급된 패스를 Google 월렛에 추가하기 위해 버튼이나 링크를 클릭하면 JWT로 인코딩된 패스 객체 인스턴스가 해당 사용자의 Google 계정에 연결됩니다. 즉, 사용자가 버튼을 다시 클릭할 때 패스 객체에 대한 링크가 이미 존재하므로 사본은 사용자의 월렛에 추가되지 않습니다.

사용자가 Google 월렛 앱에서 패스를 삭제하면 해당 패스 객체 인스턴스는 사용자와의 연결이 자동으로 해제되지만 삭제되지는 않습니다. 즉, 사용자가 Google 월렛에 추가 버튼이나 링크를 다시 표시하여 생성할 새 패스 객체 인스턴스 또는 JWT입니다.