Visão geral
As futuras notificações de gerenciamento do ciclo de vida (LCM, na sigla em inglês) do token são enviadas da API Google Pay Online para o tokenUpdateUrl
fornecido no momento da transação original. Elas são enviadas se um token for desativado ou excluído. Elas também são enviadas na medida do possível
com novas tentativas para entregas com falha. Este é um exemplo de fluxo de LCM quando um cartão é removido da Carteira do Google por um usuário:
MerchantTokenUpdateNotificationRequest
Uma mensagem HTTP POST da API Google Pay Online, que carrega um corpo JSON encapsulando um payload criptografado. O payload é criptografado com sua chave de criptografia pública compartilhada e assinado pela chave privada do Google. É possível descriptografar com sua chave de criptografia privada e verificar com a chave de assinatura raiz do Google.
Esse formato de wrapper de payload criptografado é idêntico ao que você pode receber como
PaymentMethodToken. Você pode usar a mesma biblioteca para descriptografar essa notificação do LCM.
Dentro do payload criptografado, há um objeto MerchantTokenUpdateNotificationRequest, conforme detalhado aqui.
| Propriedade | Tipo | Necessidade | Descrição |
|---|---|---|---|
messageId |
string | Obrigatório | ID exclusivo desta notificação para remover mensagens duplicadas e para fins de depuração. Se essa notificação não for entregue, ela vai permanecer a mesma para novas tentativas. |
targetNotificationUrl |
string | Obrigatório | O URL pretendido para esta notificação. Confirme se este URL é o endpoint pretendido para receber notificações de LCM de token do Google Pay. |
timestamp |
string | Obrigatório | Carimbo de data/hora em que esta notificação foi criada originalmente. Ele permanece o mesmo para novas tentativas. Se você receber várias notificações para o mesmo ID de token, apenas a notificação com o carimbo de data/hora mais recente será considerada precisa. |
apiVersion |
int | Obrigatório | Versão principal da API. |
apiVersionMinor |
int | Obrigatório | Versão secundária da API. |
merchantTokenId |
String | Obrigatório | O ID do token do comerciante com uma atualização. É o ID retornado originalmente quando o usuário
concluiu o fluxo do Google Pay para o MIT. Esse é um campo no payload criptografado,
enviado no
objeto
Objeto Card.
|
cardUpdateInfo |
CardUpdateInfo | Obrigatório | Contém atualizações para o token. |
CardUpdateInfo
| Propriedade | Tipo | Necessidade | Descrição |
|---|---|---|---|
fpanSuffix |
string | Condicional | Uma descrição para ajudar os usuários a identificar o número da conta principal de financiamento (FPAN) associado. É uma string de quatro dígitos que contém os quatro últimos caracteres do FPAN. Quando ele está presente, presume-se que o estado do token esteja ativo. Ele não aparece se não houver mudanças. |
tokenState |
string(enum) | Condicional | O novo estado do token, se ele tiver sido alterado desde a transação inicial ou a notificação anterior. Ele não aparece se não houver mudanças. O valor válido é de |
MerchantTokenUpdateNotificationResponse
Códigos de resposta HTTP
| Código de resposta HTTP | Uso |
|---|---|
| 200 | A notificação foi recebida. Outras informações de status podem ser fornecidas no corpo da resposta como um objeto JSON, conforme descrito na próxima tabela. |
| 401 | O targetNotificationUrl em MerchantTokenUpdateNotificationRequest
é inválido. Todas as notificações futuras para esse token podem ser desativadas. |
| 5xx | Erro de servidor temporário. A notificação precisa ser enviada novamente mais tarde. |
| Outro | Erro não repetível. A notificação não deve ser enviada novamente mais tarde. |
| Propriedade | Tipo | Necessidade | Descrição |
|---|---|---|---|
requestMessageId |
string | Obrigatório | O ID da mensagem gerado na solicitação. Ele precisa corresponder ao ID da mensagem da solicitação. Caso contrário, a resposta poderá ser ignorada e as notificações futuras para esse token serão interrompidas. |
status |
string(enum) | Obrigatório | O comerciante ou o provedor de serviços de pagamento (PSP) pode retornar um status que reflita a ingestão da notificação e o uso do token. Os valores válidos são:
|
Exemplo
Notificação de ciclo de vida
Solicitação de notificação
Esta é a solicitação HTTP POST que contém a notificação do LCM do token, enviada do Google Pay para seu endpoint. O corpo é um payload criptografado.
Solicitação 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" } }
Resposta de notificação
HTTP 200 OK Content-Type: application/json { // MerchantTokenUpdateNotificationResponse "requestMessageId": "ZlxoWhLC3su", "status": "SUCCESS", }
Testar com o endpoint tokenUpdateUrl
No modo TESTE, o Google Pay envia uma notificação de LCM de token para seu tokenUpdateUrl.
Para acionar isso, siga estas etapas:
- Conclua uma transação de teste chamando
loadPaymentDatacom um objeto*TransactionInfo, preenchendo o campotokenUpdateUrlcom o URL do endpoint. - O serviço do Google vai enviar uma notificação de LCM de token para seu endpoint.
- Verifique se é possível descriptografar a notificação usando sua chave privada. No modo de TESTE, essa notificação sempre muda os últimos quatro dígitos do número do cartão para "1234" e contém
"tokenState": "DISABLED", independente do token na solicitação.