Panoramica
Le future notifiche di gestione del ciclo di vita dei token (LCM) vengono inviate dall'API Google Pay Online all'tokenUpdateUrl
fornito al momento della transazione originale. Vengono inviate se un token viene disattivato o eliminato. Vengono inoltre inviati secondo il criterio del "best effort"
con tentativi di invio per le consegne non riuscite. Ecco un esempio di flusso LCM quando una carta viene rimossa da Google Wallet da un utente:
MerchantTokenUpdateNotificationRequest
Un messaggio HTTP POST dall'API Google Pay Online, contiene un corpo JSON che incapsula un payload criptato. Il payload è criptato con la tua chiave di crittografia pubblica condivisa e firmato con la chiave privata di Google. Puoi decriptare con la tua chiave di crittografia privata e verificare con la
chiave di firma principale di Google.
Questo formato wrapper del payload criptato è identico a quello che potresti ricevere come
PaymentMethodToken. Puoi utilizzare la stessa libreria per decriptare questa notifica LCM.
All'interno del payload criptato, è presente un oggetto MerchantTokenUpdateNotificationRequest
come descritto qui.
| Proprietà | Tipo | Necessità | Descrizione |
|---|---|---|---|
messageId |
stringa | Obbligatorio | ID univoco di questa notifica per deduplicare i messaggi e a scopo di debug. Se questa notifica non viene recapitata correttamente, rimane invariata per i tentativi futuri. |
targetNotificationUrl |
stringa | Obbligatorio | L'URL previsto per questa notifica. Devi confermare che questo URL è l'endpoint che intendi utilizzare per ricevere le notifiche LCM dei token da Google Pay. |
timestamp |
stringa | Obbligatorio | Timestamp di creazione originale di questa notifica. Rimane invariato per i tentativi futuri. Se ricevi più notifiche per lo stesso ID token, solo la notifica con il timestamp più recente è considerata accurata. |
apiVersion |
int | Obbligatorio | Versione principale dell'API. |
apiVersionMinor |
int | Obbligatorio | Versione secondaria dell'API. |
merchantTokenId |
Stringa | Obbligatorio | L'ID token commerciante con un aggiornamento. Questo è l'ID restituito originariamente quando l'utente
ha completato il flusso di Google Pay per l'MIT. Questo è un campo all'interno del payload criptato,
inviato nell'oggetto
Card.
|
cardUpdateInfo |
CardUpdateInfo | Obbligatorio | Contiene aggiornamenti per il token. |
CardUpdateInfo
| Proprietà | Tipo | Necessità | Descrizione |
|---|---|---|---|
fpanSuffix |
stringa | Condizionale | Una descrizione per aiutare gli utenti a identificare il numero del conto principale di finanziamento (FPAN) sottostante. È una stringa di quattro cifre che contiene gli ultimi quattro caratteri del FPAN. Quando è presente, si può presumere che lo stato del token sia attivo. Non è presente se non ci sono modifiche. |
tokenState |
stringa(enum) | Condizionale | Il nuovo stato del token, se è cambiato rispetto alla transazione iniziale o alla notifica precedente. Non è presente se non ci sono modifiche. Il valore valido è |
MerchantTokenUpdateNotificationResponse
Codici di risposta HTTP
| Codice di risposta HTTP | Utilizzo |
|---|---|
| 200 | La notifica è stata ricevuta. Ulteriori informazioni sullo stato possono essere fornite nel corpo della risposta come oggetto JSON, come descritto nella tabella seguente. |
| 401 | Il valore targetNotificationUrl in MerchantTokenUpdateNotificationRequest
non è valido. Tutte le notifiche future per questo token possono essere disattivate. |
| 5xx | Errore temporaneo del server. La notifica deve essere inviata di nuovo in un secondo momento. |
| Altro | Errore non riproducibile. La notifica non deve essere inviata di nuovo in un secondo momento. |
| Proprietà | Tipo | Necessità | Descrizione |
|---|---|---|---|
requestMessageId |
stringa | Obbligatorio | L'ID messaggio generato dalla richiesta. Deve corrispondere all'ID messaggio della richiesta, altrimenti la risposta può essere ignorata e le notifiche future per questo token vengono interrotte. |
status |
stringa(enum) | Obbligatorio | Il commerciante o il fornitore di servizi di pagamento (PSP) può restituire uno stato che riflette l'inserimento della notifica e l'utilizzo del token. I valori validi sono:
|
Esempio
Notifica del ciclo di vita
Richiesta di notifica
Si tratta della richiesta POST HTTP che contiene la notifica LCM del token, inviata da Google Pay al tuo endpoint. Il corpo è un payload criptato.
Richiesta HTTP
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" } }
Risposta alla notifica
HTTP 200 OK Content-Type: application/json { // MerchantTokenUpdateNotificationResponse "requestMessageId": "ZlxoWhLC3su", "status": "SUCCESS", }
Esegui il test con l'endpoint tokenUpdateUrl
In modalità TEST, Google Pay invia una notifica LCM del token al tuo tokenUpdateUrl.
Per attivare questa funzionalità, segui questi passaggi:
- Completa una transazione di test chiamando
loadPaymentDatacon un oggetto*TransactionInfo, compilando il campotokenUpdateUrlcon l'URL dell'endpoint. - Il servizio di Google invierà una notifica LCM del token al tuo endpoint.
- Verifica di poter decriptare la notifica utilizzando la tua chiave privata. Tieni presente che, in modalità TEST, questa
notifica modificherà sempre le ultime 4 cifre del numero di carta in "1234" e conterrà
"tokenState": "DISABLED", indipendentemente dal token nella richiesta.