Başarılı Sınıflar ve Nesneler'e genel bakış

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

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

Her bir Başarılı 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 geçişlere dahil edilecek bir ortak özellik grubunu tanımlar.

Örneğin, aşağıdaki EventTicketClass örneği, yaklaşan bir etkinlik için verilen 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 için, sizin belirttiğiniz bir id özelliği gerekir. Bu Sınıf Kimliği, yeni bir Passes Nesnesi örneği oluşturmak için kullandığınızda başvuracağınız benzersiz bir tanımlayıcı işlevi görür.

Nesneleri Geçirir

Kartlar Sınıfı ö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 ilişkin ö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": ""
  }
}
  

Başarılı Nesnelerinin her örneği için, sizin belirttiğiniz bir id özelliği gerekir. Bu nesne kimliği, kartı bir kullanıcıya sunduğunuzda başvuracağınız benzersiz bir tanımlayıcı görevi görür.

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

Başarılı Nesneler, Kartlar Sınıfının bir örneğini Sınıf Kimliğine başvurarak veya tam Kartlar Sınıfı tanımını ekleyerek genişletmelidir. Geçiş Sınıfı ile Nesne Başarılı Ö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 Başarılı Nesne ö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 geçiş şeması, paylaşılan EventTicketClass içinde tanımlanan alanların ve EventTicketObject içinde tanımlanan belirli bir bilete ait alanların, nihai kartı oluşturmak için nasıl birleştirildiğini gösterir. Kartlar Sınıfı kimliğine, Kartlar Nesnesinin classId özelliğinde nasıl başvurulduğuna dikkat edin.

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

Kullanıcıların Google Cüzdan'ına kart eklemek için, kartı veren kuruluşun, Google Cüzdan'a kaydedilecek Kartlar Nesnesi örneğiyle (en önemlisi de kullanıcıya verdiğiniz Kartlar Nesnesi örneğinin Nesne Kimliği) hakkında sizin (kartı veren kuruluşun) iddialarını içeren bir JSON Web Jetonu (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ı kullanılarak gönderilir.

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

Kullanıcı, Google Cüzdan uygulamasından bir kartı kaldırırsa ilgili Passes Object örneğinin kullanıcıyla olan bağlantısı otomatik olarak kaldırılır ancak silinmez. Diğer bir deyişle, kullanıcılar yeni bir Passes Object örneği veya JWT oluşturmaya gerek kalmadan Google Cüzdan'a ekle düğmesini veya bağlantıyı tekrar tıklayarak kartı kaydedebilir.