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 |
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:
|
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
loadPaymentDatadengan objek*TransactionInfo, mengisi kolomtokenUpdateUrldengan 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.