Notifikasi pengelolaan siklus proses token

Ringkasan

Notifikasi Pengelolaan Siklus Proses (LCM) token mendatang dikirim dari Google Pay Online API ke tokenUpdateUrl yang diberikan pada saat transaksi awal. Pemberitahuan ini dikirim jika token dinonaktifkan atau dihapus. Pesan ini juga dikirim atas dasar upaya terbaik dengan upaya coba lagi untuk pengiriman yang gagal. Berikut contoh alur LCM saat kartu dihapus dari Google Wallet oleh pengguna:

MerchantTokenUpdateNotificationRequest

Pesan HTTP POST dari Google Pay Online API, membawa isi JSON yang merangkum payload terenkripsi. Payload dienkripsi dengan kunci enkripsi publik bersama Anda, dan ditandatangani oleh kunci pribadi Google. Anda dapat mendekripsi dengan kunci enkripsi pribadi Anda, dan memverifikasi dengan kunci penandatanganan root Google. Format wrapper payload terenkripsi ini identik dengan yang mungkin Anda terima sebagai PaymentMethodToken. Anda dapat menggunakan library yang sama untuk mendekripsi notifikasi LCM ini. Dalam payload terenkripsi, ada objek MerchantTokenUpdateNotificationRequest seperti yang dijelaskan di sini.

Properti Jenis Kebutuhan Deskripsi
messageId string Wajib

ID unik notifikasi ini untuk menghapus duplikat pesan dan untuk tujuan proses debug.

Jika notifikasi ini tidak berhasil dikirim, notifikasi akan tetap sama untuk percobaan ulang di masa mendatang.

targetNotificationUrl string Wajib

URL yang dituju untuk notifikasi ini. Anda harus mengonfirmasi bahwa URL ini adalah endpoint yang Anda inginkan untuk menerima notifikasi LCM token dari Google Pay.

timestamp string Wajib

Stempel waktu saat notifikasi ini pertama kali dibuat. Nilai ini tetap sama untuk percobaan ulang di masa mendatang.

Jika Anda menerima beberapa notifikasi untuk ID token yang sama, hanya notifikasi dengan stempel waktu terbaru yang dianggap akurat.

apiVersion int Wajib Versi utama API.
apiVersionMinor int Wajib Versi minor API.
merchantTokenId String Wajib ID token penjual dengan pembaruan. Ini adalah ID yang awalnya ditampilkan saat pengguna menyelesaikan alur Google Pay untuk MIT. Ini adalah kolom dalam payload terenkripsi, dikirim dalam Objek Card.
cardUpdateInfo CardUpdateInfo Wajib Berisi pembaruan untuk token.

CardUpdateInfo

Properti Jenis Kebutuhan Deskripsi
fpanSuffix string Kondisional

Deskripsi untuk membantu pengguna mengidentifikasi Nomor Rekening Utama Pendanaan (FPAN) yang mendasarinya. Ini adalah string empat digit yang berisi empat karakter terakhir FPAN.

Jika ada, status token dapat diasumsikan aktif.

Tidak ada jika tidak ada perubahan.

tokenState string(enum) Kondisional

Status baru token, jika berubah sejak transaksi awal atau notifikasi sebelumnya.

Tidak ada jika tidak ada perubahan.

Nilai yang valid adalah DISABLED.

MerchantTokenUpdateNotificationResponse

Kode respons HTTP

Kode respons HTTP Penggunaan
200 Notifikasi berhasil diterima. Informasi status tambahan dapat diberikan dalam isi respons sebagai objek JSON seperti yang dijelaskan dalam tabel berikutnya.
401 targetNotificationUrl di MerchantTokenUpdateNotificationRequest tidak valid. Semua notifikasi mendatang untuk token ini dapat dinonaktifkan.
5xx Error server sementara. Notifikasi harus dikirim lagi di lain waktu.
Lainnya Error yang tidak dapat dicoba lagi. Notifikasi tidak boleh dikirim lagi di lain waktu.
Properti Jenis Kebutuhan Deskripsi
requestMessageId string Wajib

ID pesan yang dihasilkan dari permintaan.

ID ini harus cocok dengan ID pesan dari permintaan, jika tidak, respons dapat diabaikan dan notifikasi selanjutnya untuk token ini akan dihentikan.

status string(enum) Wajib

Penjual atau Penyedia Layanan Pembayaran (PSP) dapat menampilkan status yang mencerminkan penyerapan notifikasi dan penggunaan token mereka.

Nilai yang valid adalah:

  • SUCCESS
  • TOKEN_NOT_IN_USE
  • TOKEN_NOT_FOUND

Contoh

Notifikasi siklus proses

Permintaan notifikasi

Ini adalah permintaan HTTP POST yang berisi notifikasi LCM token, yang dikirim dari Google Pay ke endpoint Anda. Isinya adalah payload terenkripsi.

Permintaan 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"
    }
  }

Respons notifikasi

  HTTP 200 OK
  Content-Type: application/json

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

Uji dengan endpoint tokenUpdateUrl Anda

Dalam mode TEST, Google Pay mengirimkan notifikasi LCM token ke tokenUpdateUrl Anda. Untuk memicunya, ikuti langkah-langkah berikut:

  • Selesaikan transaksi pengujian dengan memanggil loadPaymentData dengan objek *TransactionInfo, mengisi kolom tokenUpdateUrl dengan URL endpoint Anda.
  • Layanan Google akan mengirimkan notifikasi LCM token ke endpoint Anda.
  • Verifikasi bahwa Anda dapat mendekripsi notifikasi menggunakan kunci pribadi Anda. Perhatikan bahwa, dalam mode TEST, notifikasi ini akan selalu mengubah 4 digit terakhir nomor kartu menjadi "1234" dan berisi "tokenState": "DISABLED", terlepas dari token dalam permintaan.