Kartlar Sınıfları ve Nesnelerine genel bakış

Son kullanıcıların Google Cüzdan'a kaydetmeleri için verebileceğiniz kartların neredeyse tamamı iki bileşenle tanımlanır: Kartlar Sınıfı ve Kartlar Nesnesi. Bir kullanıcıya her kart verdiğinizde, hem Kartlar Sınıfı hem de Kartlar Nesnesinin bir örneğine ihtiyacınız olacaktır. Bu örnekler, Google Cüzdan API'sine ne tür bir kart oluşturmanız gerektiğini ve kart üzerinde görüntülenecek, hediye kartının değeri veya bilet sahibinin adı gibi ayrıntıları bildirir.

Google Cüzdan API'si, örneklerini oluşturup ardından GiftCardClass, GiftCardObject, GenericClass ve GenericObject gibi kullanıcılara verilen bir kart oluşturmak için kullanabileceğiniz önceden tanımlanmış Kartlar Sınıfları ve Kartlar Nesneleri grubu sağlar.

Her Geçer Sınıfı ve Nesne Nesnesi örneği bir JSON nesnesi olarak tanımlanır. JSON nesnesi, söz konusu geçiş türü için amaçlanan belirli kullanım alanına karşılık gelen bir dizi zorunlu ve isteğe bağlı özelliğe sahiptir.

Başarılı Sınıflar

Kartlar Sınıfını, kullanıcılarınıza vereceğiniz bir veya daha fazla kart oluşturmak için kullanılan paylaşılan bir şablon olarak düşünebilirsiniz. Kartlar Sınıfı, kendisine referans veren tüm kartlara dahil edilecek ortak bir özellik grubunu tanımlar.

Örneğin, aşağıdaki EventTicketClass örneği, yaklaşan bir etkinlik için yayınlanan tüm biletlerde ortak olan alanları tanımlar(mekan, etkinlik adı, düzenleyen, tarih/saat).

{
  "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"
}
  

Kartlar Sınıfının her örneği, belirttiğiniz bir id özelliğini gerektirir. Bu Sınıf Kimliği, yeni bir Passes Nesnesi örneği oluşturmak için her kullandığınızda başvuracağınız benzersiz bir tanımlayıcı işlevi görür.

Nesneleri Geçirir

Kartlar Sınıfının bir örneği bir veya daha fazla kartta kullanılacak bir paylaşılan özellik grubunu belirtirken Kartlar Nesnesi, belirli bir kullanıcıya verilen belirli bir kartın benzersiz ayrıntılarını belirtir.

Örneğin, Google Cüzdan API'si ile bir Etkinlik Bileti Kartı oluşturulduğunda, EventTicketObject örneği bu bilete atanan lisansa ait özellikleri içerir. Bunun nedeni, bu değerlerin, verilen her bilet için benzersiz olmasıdır.

{
  "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": ""
  }
}
  

Passes nesnesinin her örneği, belirttiğiniz bir id özelliğini gerektirir. Bu Nesne Kimliği, kartı kullanıcıya verdiğinizde referans vereceğiniz benzersiz bir tanımlayıcı işlevi görür.

Kartlar Sınıfları, Kartlar Nesneleriyle nasıl çalışır?

Geçirilen Nesneler, Kartlar Sınıfının bir örneğini Sınıf Kimliği'ne başvurarak veya tam Kartlar Sınıf tanımını dahil ederek genişletmelidir. Geçiş Sınıfı ile Nesne Nesnesi örneği arasındaki bu ilişki, Kartlar Sınıfı örneği aracılığıyla yayınlanan tüm geçişlerde ortak olan özellikleri ve Kartlar Nesnesi örneğinde tek bir geçişe özgü özellikleri ayarlayıp güncelleyebileceğiniz anlamına gelir.

Örneğin, aşağıdaki basit Etkinlik Bileti kullanımı şeması, paylaşılan EventTicketClass içinde tanımlanan alanların ve EventTicketObject içinde tanımlanan belirli bir biletin alanlarının nihai pasosu oluşturmak için nasıl birleştirildiğini gösterir. Kartlar Sınıfı kimliğine, Kartlar nesnesinin classId özelliğinde nasıl referans verildiğini unutmayın.

Kartlar Sınıfı örnek örneğinde yapılan değişiklikler, bu örneğe referans veren tüm Kartlar Nesnesi örneklerine hemen uygulanır. Kullanıcılar, Kartlar Sınıfı örneğinde yaptığınız değişiklikleri bir sonraki senkronizasyonda Google Cüzdan uygulamalarında görür.

Kullanıcıların Google Cüzdan'ına kart ekleme

Bir kullanıcının Google Cüzdan'ına kart eklemek için, kartı veren kuruluşun, kullanıcının Google Cüzdan'ına kaydedilecek Kartlar Nesnesi örneğiyle (en önemlisi, kullanıcıya verdiğiniz Kartlar Nesnesi örneğinin Nesne Kimliği) ilgili iddiaları içeren bir JSON Web Token (JWT) oluşturursunuz. JWT, daha sonra kullanıcıya Google Cüzdan'a ekle düğmesi veya Google Cüzdan'a ekle bağlantısıyla iletilir.

Kullanıcı, verilmiş bir kartı Google Cüzdan'a eklemek için düğmeyi veya bağlantıyı tıkladıktan sonra JWT'de kodlanan Passes Nesnesi örneğinin bağlantısı ilgili kullanıcının Google hesabına bağlanır. Bu, kullanıcı düğmeyi tekrar tıkladığında bu Geciken Nesneye giden bir bağlantının zaten mevcut olduğu anlamına gelir. Böylece, yinelenen kopyalar kullanıcının cüzdanına eklenmez.

Kullanıcı, bir kartı Google Cüzdan uygulamasından kaldırırsa ilgili Passes Nesnesi örneğinin kullanıcıyla olan bağlantısı otomatik olarak kaldırılır ancak kart silinmez. Bu sayede kullanıcı, yeni bir Passes Nesnesi örneği veya JWT oluşturulmasına gerek kalmadan Google Cüzdan'a ekle düğmesini ya da bağlantısını tekrar tıklayarak kartı kaydedebilir.