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: |
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:
|
Ö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:
loadPaymentDataile*TransactionInfonesnesini çağırarak test işlemi gerçekleştirin vetokenUpdateUrlalanı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.