用途:这是一个查询型技能,帮助定位并解释 Google Play 实时开发者通知(RTDN)的各类通知。它会告诉用户将查找所问的通知类型并给出处理建议。
主要能力:可按整数代码、事件名称(如 SUBSCRIPTION_ON_HOLD)或症状(如“付款失败后用户失去访问”)在订阅通知、一次性商品通知、撤销购买通知、测试通知四类表中定位记录。订阅表列出通知类型代码(1、2、3、4、5、6、7、8、9、10、11、12、13、17、18、19、20、22)、触发条件、订阅状态变化和所需操作;未分配代码 14、15、16、21 会被说明为保留且不会发出。一次性商品通知为代码 1 购买完成、2 待处理购买被取消。
结构:每条 RTDN 以 Cloud Pub/Sub 消息到达,data 字段为 base64 编码 JSON,解码后含 version、packageName、eventTimeMillis,以及 subscriptionNotification、oneTimeProductNotification、voidedPurchaseNotification、testNotification 中恰好一个字段。订阅载荷含 notificationType、purchaseToken、subscriptionId;一次性商品载荷含 sku。撤销购买载荷含 orderId、productType、refundType。
建议处理:每次订阅通知需解码 base64、解析 JSON、读 notificationType、提取 purchaseToken 与 subscriptionId,调用 purchases.subscriptionsv2.get,以 API 返回为准执行所需操作,再确认 Pub/Sub 消息。代码 4 和 1 需在 3 天内确认否则 Google 退款;代码 3 不是立即撤销,保留访问至 expiryTime;代码 5 立即撤销、代码 6 保留访问;代码 12 无论 expiryTime 立即撤销;代码 11、17、19、22 状态不定需查 API;代码 8 已弃用,应改用 19。一次性商品需读 notificationType 与 purchaseToken,调用 purchases.products.get,代码 1 在 3 天内确认或消费。
限制:不要仅依赖 RTDN 载荷做业务逻辑,RTDN 只提示有变化,API 才给出当前状态。具体接入、认证与实现细节本资料暂未提供。