Hướng dẫn tham khảo về thông báo theo thời gian thực dành cho nhà phát triển

Chủ đề này liệt kê và mô tả các loại Thông báo theo thời gian thực dành cho nhà phát triển mà bạn có thể nhận được từ Google Play.

Mã hoá

Mỗi lượt phát hành được tạo cho một chủ đề Cloud Pub/Sub, trong đó chứa một trường dữ liệu được mã hoá base64.

{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

Sau khi bạn giải mã trường dữ liệu được mã hoá base64, DeveloperNotification sẽ chứa các trường sau:

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "testNotification": TestNotification
}

Các trường này được mô tả trong bảng sau.

Tên thuộc tính Giá trị Mô tả
version string Phiên bản của thông báo này. Ban đầu, đây là phiên bản "1.0". Phiên bản này khác với các trường của phiên bản khác.
packageName string Tên gói của ứng dụng mà thông báo này có liên quan (ví dụ: "com.some.thing").
eventTimeMillis long Dấu thời gian khi sự kiện diễn ra, tính bằng mili giây kể từ Thời gian bắt đầu của hệ thống.
subscriptionNotification SubscriptionNotification Nếu có trường này thì thông báo này liên quan đến một gói thuê bao và chứa thông tin bổ sung liên quan đến gói thuê bao đó. Xin lưu ý rằng trường này mang tính loại trừ lẫn nhau đối với testNotification và oneTimeProductNotification.
oneTimeProductNotification OneTimeProductNotification Nếu có trường này thì thông báo này liên quan đến giao dịch mua hàng một lần và trường này chứa thông tin bổ sung liên quan đến giao dịch mua đó. Xin lưu ý rằng trường này mang tính loại trừ lẫn nhau đối với testNotification và subscriptionProductNotification.
testNotification TestNotification Nếu có trường này thì thông báo này liên quan đến một hoạt động kiểm thử phát hành. Thông báo này chỉ được gửi qua Google Play Console. Xin lưu ý rằng trường này mang tính loại trừ lẫn nhau đối với subscriptionNotification và oneTimeProductNotification.

SubscriptionNotification

SubscriptionNotification chứa các trường sau:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
Tên thuộc tính Giá trị Mô tả
version string Phiên bản của thông báo này. Ban đầu, đây là phiên bản "1.0". Phiên bản này khác với các trường của phiên bản khác.
notificationType int notificationType cho một gói thuê bao có thể có các giá trị sau:
  • (1) SUBSCRIPTION_RECOVERED – Gói thuê bao được khôi phục từ tài khoản bị tạm ngưng.
  • (2) SUBSCRIPTION_RENEWED – Gói thuê bao đang hoạt động được gia hạn.
  • (3) SUBSCRIPTION_CANCELED – Gói thuê bao bị huỷ theo cách tự nguyện hoặc không tự nguyện. Đối với trường hợp huỷ tự nguyện, nôi dung này được gửi khi người dùng huỷ.
  • (4) SUBSCRIPTION_PURCHASED – Người dùng mua một gói thuê bao mới.
  • (5) SUBSCRIPTION_ON_HOLD – Gói thuê bao đã chuyển sang trạng thái tạm ngưng tài khoản (nếu đã bật).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD – Gói thuê bao đã bước vào thời gian gia hạn (nếu được bật).
  • (7) SUBSCRIPTION_RESTARTED – Người dùng đã khôi phục gói thuê bao trên Play > Account > Subscriptions (Play > Tài khoản > Gói thuê bao). Gói thuê bao đã bị huỷ nhưng chưa hết hạn khi người dùng khôi phục. Để biết thêm thông tin, hãy xem phần Khôi phục.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED – Người dùng đã xác nhận thành công việc thay đổi giá gói thuê bao.
  • (9) SUBSCRIPTION_DEFERRED – Thời gian đăng ký định kỳ của gói thuê bao đã được kéo dài.
  • (10) SUBSCRIPTION_PAUSED – Gói thuê bao đã bị tạm dừng.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED – Lịch biểu tạm dừng gói thuê bao đã thay đổi.
  • (12) SUBSCRIPTION_REVOKED – Người dùng đã thu hồi gói thuê bao trước thời gian hết hạn.
  • (13) SUBSCRIPTION_EXPIRED – Gói thuê bao đã hết hạn.
purchaseToken string Mã thông báo được cung cấp cho thiết bị của người dùng khi người dùng mua gói thuê bao.
subscriptionId string Mã sản phẩm của gói thuê bao bạn đã mua (ví dụ: "monthly001").

Ví dụ

Dưới đây là ví dụ về thông báo giao dịch mua gói thuê bao mới:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN",
    "subscriptionId":"monthly001"
  }
}

OneTimeProductNotification

OneTimeProductNotification chứa các trường sau:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Tên thuộc tính Giá trị Mô tả
version string Phiên bản của thông báo này. Ban đầu, phiên bản này sẽ là "1.0". Phiên bản này khác với các trường của phiên bản khác.
notificationType int Loại thông báo. Thuộc tính này có thể có các giá trị sau:
  • (1) ONE_TIME_PRODUCT_PURCHASED – Người dùng đã mua thành công sản phẩm tính phí một lần.
  • (2) ONE_TIME_PRODUCT_CANCELED - Người dùng đã huỷ giao dịch mua sản phẩm tính phí một lần đang chờ xử lý.
purchaseToken string Mã thông báo được cung cấp cho thiết bị của người dùng khi họ thực hiện giao dịch mua.
sku string Mã sản phẩm tính phí một lần (ví dụ: "sword_001")

Ví dụ

Dưới đây là ví dụ về thông báo cho giao dịch mua hàng một lần mới:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}

TestNotification

TestNotification chứa các trường sau:

{
  "version": string
}
Tên thuộc tính Giá trị Mô tả
version string Phiên bản của thông báo này. Ban đầu, đây là phiên bản "1.0". Phiên bản này khác với các trường của phiên bản khác.

Ví dụ

Dưới đây là ví dụ về một thông báo kiểm thử:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}