Jeton yaşam döngüsü yönetimi bildirimleri

Genel Bakış

Gelecekteki jeton yaşam döngüsü yönetimi (LCM) bildirimleri, Google Pay Online API'den orijinal işlem sırasında sağlanan tokenUpdateUrl adresine gönderilir. Jeton devre dışı bırakılırsa veya silinirse gönderilir. Ayrıca, başarısız teslimatlar için yeniden denemelerle birlikte mümkün olan en iyi şekilde gönderilirler. Bir kart, kullanıcı tarafından Google Cüzdan'dan kaldırıldığında LCM akışının nasıl olacağına dair bir örneği aşağıda bulabilirsiniz:

MerchantTokenUpdateNotificationRequest

Google Pay Online API'den gelen bir HTTP POST mesajı, şifrelenmiş bir yükü kapsayan bir JSON gövdesi taşır. Yük, paylaşılan ortak şifreleme anahtarınızla şifrelenir ve Google'ın özel anahtarıyla imzalanır. Özel şifreleme anahtarınızla şifre çözebilir ve Google'ın kök imzalama anahtarıyla doğrulayabilirsiniz. Bu şifrelenmiş yük sarmalayıcı biçimi, PaymentMethodToken olarak alabileceğiniz biçimle aynıdır. Bu LCM bildiriminin şifresini çözmek için aynı kitaplığı kullanabilirsiniz. Şifrelenmiş yükte, burada ayrıntılı olarak açıklanan bir MerchantTokenUpdateNotificationRequest nesnesi bulunur.

Mülk Tür Gereklilik Açıklama
messageId dize Zorunlu

İletilerin tekilleştirilmesi ve hata ayıklama amacıyla bu bildirimin benzersiz kimliği.

Bu bildirim başarıyla teslim edilmezse gelecekteki yeniden denemelerde aynı kalır.

targetNotificationUrl dize Zorunlu

Bu bildirim için hedeflenen URL. Google Pay'den jeton yaşam döngüsü yönetimi bildirimleri almak için bu URL'nin amaçlanan uç noktanız olduğunu onaylamanız gerekir.

timestamp dize Zorunlu

Bu bildirimin ilk oluşturulma zaman damgası. Gelecekteki yeniden denemelerde de aynı kalır.

Aynı jeton kimliği için birden fazla bildirim alırsanız yalnızca en son zaman damgasına sahip bildirim doğru kabul edilir.

apiVersion int Zorunlu API ana sürümü.
apiVersionMinor int Zorunlu API alt sürümü.
merchantTokenId Dize Zorunlu Güncelleme içeren satıcı jetonu kimliği. Bu, kullanıcının MIT için Google Pay akışını tamamladığında başlangıçta döndürülen kimliktir. Bu, şifrelenmiş yükteki bir alandır ve Card nesnesi.
cardUpdateInfo CardUpdateInfo Zorunlu Jetonla ilgili güncellemeleri içerir.

CardUpdateInfo

Mülk Tür Gereklilik Açıklama
fpanSuffix dize Şart Kipi

Kullanıcıların temel Ana Ödeme Hesabı Numarasını (FPAN) tanımlamasına yardımcı olacak bir açıklama. FPAN'ın son dört karakterini içeren dört haneli bir dizedir.

Bu jeton mevcut olduğunda jetonun etkin olduğu varsayılabilir.

Değişiklik yoksa gösterilmez.

tokenState dize(enum) Şart Kipi

İlk işlemden veya önceki bildirimden bu yana değiştiyse jetonun yeni durumu.

Değişiklik yoksa gösterilmez.

Geçerli değer: DISABLED.

MerchantTokenUpdateNotificationResponse

HTTP yanıt kodları

HTTP yanıt kodu Kullanım
200 Bildirim başarıyla alındı. Ek durum bilgileri, yanıt gövdesinde bir JSON nesnesi olarak sağlanabilir. Bu bilgiler, sonraki tabloda açıklanmıştır.
401 MerchantTokenUpdateNotificationRequest içindeki targetNotificationUrl geçersiz. Bu jetonla ilgili tüm gelecek bildirimler devre dışı bırakılabilir.
5xx Geçici sunucu hatası. Bildirim daha sonra tekrar gönderilmelidir.
Diğer Yeniden denenemeyen hata. Bildirim daha sonra tekrar gönderilmemelidir.
Mülk Tür Gereklilik Açıklama
requestMessageId dize Zorunlu

İstekten oluşturulan mesaj kimliği.

İstekten gelen mesaj kimliğiyle eşleşmelidir. Aksi takdirde yanıt yoksayılabilir ve bu jetonla ilgili gelecekteki bildirimler durdurulur.

status dize(enum) Zorunlu

Satıcı veya ödeme hizmeti sağlayıcısı (PSP), bildirimin alınmasını ve jetonun kullanımını yansıtan bir durum döndürebilir.

Geçerli değerler şunlardır:

  • SUCCESS
  • TOKEN_NOT_IN_USE
  • TOKEN_NOT_FOUND

Örnek

Yaşam döngüsü bildirimi

Bildirim isteği

Bu, Google Pay'den uç noktanıza gönderilen, jeton LCM bildirimini içeren HTTP POST isteğidir. Gövde, şifrelenmiş bir yük.

HTTP isteği

  HTTP POST /token/notification/123
  Host: api.merchant.com
  Content-Type: application/json

  {
    "protocolVersion":"ECv2",
    "signature":"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\u003d\u003d",
    "intermediateSigningKey":{
      "signedKey": "{\"keyExpiration\":\"1542323393147\",\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/1+3HBVSbdv+j7NaArdgMyoSAM43yRydzqdg1TxodSzA96Dj4Mc1EiKroxxunavVIvdxGnJeFViTzFvzFRxyCw\\u003d\\u003d\"}",
      "signatures": ["MEYCIQCO2EIi48s8VTH+ilMEpoXLFfkxAwHjfPSCVED/QDSHmQIhALLJmrUlNAY8hDQRV/y1iKZGsWpeNmIP+z+tCQHQxP0v"]
    },
    "signedMessage":"{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}"
  }

Decrypted MerchantTokenUpdateNotificationRequest

  {  // MerchantTokenUpdateNotificationRequest
    "messageId": "ZlxoWhLC3su",
    "targetNotificationUrl":
      "https://api.merchant.com/token/notification/123",
    "timestamp": "2025-03-28T07:53:12.39Z",
    "apiVersion": 1,
    "apiVersionMinor": 0,
    "merchantTokenId": "123",
    "cardUpdateInfo": {
      "tokenState": "DISABLED"
    }
  }

Bildirim yanıtı

  HTTP 200 OK
  Content-Type: application/json

  {  // MerchantTokenUpdateNotificationResponse
    "requestMessageId": "ZlxoWhLC3su",
    "status": "SUCCESS",
  }

tokenUpdateUrl uç noktanızla test etme

TEST modunda Google Pay, tokenUpdateUrl cihazınıza bir jeton LCM bildirimi gönderir. Bu özelliği tetiklemek için aşağıdaki adımları uygulayın:

  • loadPaymentData ile *TransactionInfo nesnesini çağırarak test işlemi gerçekleştirin ve tokenUpdateUrl alanını uç nokta URL'nizle doldurun.
  • Google'ın hizmeti, uç noktanıza bir jeton LCM bildirimi gönderir.
  • Özel anahtarınızı kullanarak bildirimin şifresini çözebildiğinizi doğrulayın. TEST modunda bu bildirimin, istekteki jetondan bağımsız olarak kart numarasının son 4 hanesini her zaman "1234" olarak değiştireceğini ve "tokenState": "DISABLED" içereceğini unutmayın.