Tổng quan
Các thông báo trong tương lai về Quản lý vòng đời (LCM) của mã thông báo sẽ được gửi từ Google Pay Online API đến tokenUpdateUrl được cung cấp tại thời điểm giao dịch ban đầu. Thông báo này sẽ được gửi nếu mã thông báo bị huỷ kích hoạt hoặc bị xoá. Chúng cũng được gửi theo cách tốt nhất có thể với các lần thử lại cho những lần gửi không thành công. Sau đây là ví dụ về quy trình LCM khi người dùng xoá thẻ khỏi Google Wallet:
MerchantTokenUpdateNotificationRequest
Thông báo HTTP POST từ Google Pay Online API, mang theo một phần nội dung JSON bao bọc một tải trọng được mã hoá. Tải trọng được mã hoá bằng khoá mã hoá công khai dùng chung của bạn và được ký bằng khoá riêng tư của Google. Bạn có thể giải mã bằng khoá mã hoá riêng tư và xác minh bằng khoá ký gốc của Google.
Định dạng trình bao bọc tải trọng được mã hoá này giống hệt với định dạng mà bạn có thể nhận được dưới dạng PaymentMethodToken. Bạn có thể dùng chính thư viện này để giải mã thông báo LCM này.
Trong tải trọng được mã hoá, có một đối tượng MerchantTokenUpdateNotificationRequest như được mô tả chi tiết tại đây.
| Thuộc tính | Loại | Cần thiết | Mô tả |
|---|---|---|---|
messageId |
chuỗi | Bắt buộc | Mã nhận dạng duy nhất của thông báo này để loại bỏ các thông báo trùng lặp và cho mục đích gỡ lỗi. Nếu không gửi được thông báo này, thì thông báo sẽ vẫn như vậy cho các lần thử lại sau này. |
targetNotificationUrl |
chuỗi | Bắt buộc | URL dự kiến cho thông báo này. Bạn phải xác nhận rằng URL này là điểm cuối mà bạn dự định dùng để nhận thông báo LCM của mã thông báo từ Google Pay. |
timestamp |
chuỗi | Bắt buộc | Dấu thời gian cho biết thời điểm thông báo này được tạo lần đầu. Giá trị này vẫn giữ nguyên cho các lần thử lại sau này. Nếu bạn nhận được nhiều thông báo cho cùng một mã thông báo, thì chỉ thông báo có dấu thời gian mới nhất mới được coi là chính xác. |
apiVersion |
int | Bắt buộc | Phiên bản lớn của API. |
apiVersionMinor |
int | Bắt buộc | Phiên bản nhỏ của API. |
merchantTokenId |
Chuỗi | Bắt buộc | Mã thông báo người bán đã được cập nhật. Đây là mã nhận dạng được trả về ban đầu khi người dùng hoàn tất quy trình Google Pay cho MIT. Đây là một trường trong tải trọng được mã hoá, được gửi trong đối tượng
Đối tượng Card.
|
cardUpdateInfo |
CardUpdateInfo | Bắt buộc | Chứa nội dung cập nhật cho mã thông báo. |
CardUpdateInfo
| Thuộc tính | Loại | Cần thiết | Mô tả |
|---|---|---|---|
fpanSuffix |
chuỗi | Câu lệnh có điều kiện | Nội dung mô tả giúp người dùng xác định Số tài khoản cấp tiền chính (FPAN) cơ bản. Đây là một chuỗi gồm 4 chữ số chứa 4 ký tự cuối cùng của FPAN. Khi có mặt, trạng thái mã thông báo có thể được giả định là đang hoạt động. Tham số này sẽ không xuất hiện nếu không có thay đổi. |
tokenState |
string(enum) | Câu lệnh có điều kiện | Trạng thái mới của mã thông báo, nếu đã thay đổi kể từ giao dịch ban đầu hoặc thông báo trước đó. Tham số này sẽ không xuất hiện nếu không có thay đổi. Giá trị hợp lệ là |
MerchantTokenUpdateNotificationResponse
Mã phản hồi HTTP
| Mã phản hồi HTTP | Cách sử dụng |
|---|---|
| 200 | Bạn đã nhận được thông báo. Thông tin bổ sung về trạng thái có thể được cung cấp trong nội dung phản hồi dưới dạng một đối tượng JSON như mô tả trong bảng tiếp theo. |
| 401 | targetNotificationUrl trong MerchantTokenUpdateNotificationRequest không hợp lệ. Bạn có thể tắt tất cả thông báo trong tương lai cho mã thông báo này. |
| 5xx | Lỗi máy chủ tạm thời. Thông báo này sẽ được gửi lại vào lúc khác. |
| Khác | Lỗi không thể truy xuất. Thông báo này sẽ không được gửi lại vào lúc khác. |
| Thuộc tính | Loại | Cần thiết | Mô tả |
|---|---|---|---|
requestMessageId |
chuỗi | Bắt buộc | Mã thông báo được tạo từ yêu cầu. Giá trị này phải khớp với mã nhận dạng thông báo trong yêu cầu, nếu không, phản hồi có thể bị bỏ qua và các thông báo trong tương lai cho mã thông báo này sẽ bị dừng. |
status |
string(enum) | Bắt buộc | Người bán hoặc Nhà cung cấp dịch vụ thanh toán (PSP) có thể trả về một trạng thái phản ánh việc họ tiếp nhận thông báo và việc họ sử dụng mã thông báo. Các giá trị hợp lệ là:
|
Ví dụ:
Thông báo về vòng đời
Yêu cầu thông báo
Đây là yêu cầu HTTP POST chứa thông báo LCM của mã thông báo, được gửi từ Google Pay đến điểm cuối của bạn. Nội dung là một tải trọng được mã hoá.
Yêu cầu 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" } }
Phản hồi thông báo
HTTP 200 OK Content-Type: application/json { // MerchantTokenUpdateNotificationResponse "requestMessageId": "ZlxoWhLC3su", "status": "SUCCESS", }
Thử nghiệm bằng điểm cuối tokenUpdateUrl
Ở chế độ KIỂM THỬ, Google Pay sẽ gửi một thông báo LCM mã thông báo đến tokenUpdateUrl của bạn.
Để kích hoạt tính năng này, hãy làm theo các bước sau:
- Hoàn tất một giao dịch kiểm thử bằng cách gọi
loadPaymentDatabằng một đối tượng*TransactionInfo, điền vào trườngtokenUpdateUrlbằng URL điểm cuối của bạn. - Dịch vụ của Google sẽ gửi thông báo LCM mã thông báo đến điểm cuối của bạn.
- Xác minh rằng bạn có thể giải mã thông báo bằng khoá riêng tư của mình. Xin lưu ý rằng ở chế độ TEST, thông báo này sẽ luôn thay đổi 4 chữ số cuối của số thẻ thành "1234" và chứa
"tokenState": "DISABLED", bất kể mã thông báo trong yêu cầu.