【发布时间】:2019-11-14 02:06:30
【问题描述】:
在设置 Android 实时开发者通知 (RTDN) 作为接收 IAP 订阅状态更改到我的网络服务器的一种方式后,我实际上只收到了来自 Google 的 RTDN webhook 的某个推送,该推送从未包含订阅详细信息。以下是每次从我的应用发生购买订阅事件时传递到我的服务器的有效负载结构:
"message": {
"data": "longstringofcharacters",
"messageId": "604411111111111",
"message_Id": "60442222222222",
"publishTime": "2019-07-03T11:03:34.076Z",
"publish_time": "2019-07-03T11:03:34.076Z",
},
"subscription": "projects/api-keyname/subscriptions/my-project-name"
根据 Google 的 RTDN 设置指南 (https://developer.android.com/google/play/billing/realtime_developer_notifications.html),每当我的应用中的用户购买、取消、恢复或经历任何其他相关状态更改时,我都应该期望收到以下格式:
{
"version": string,
"packageName": string
"eventTimeMillis": long
"subscriptionNotification": SubscriptionNotification
"testNotification": TestNotification
}
我已多次阅读 Google 的 RTDN 设置指南,并确保我的主题已使用 Google 的“google-play-developer-notifications@system.gserviceaccount.com”授予“Pub/Sub Publisher”的发布者权限说是必要的一步;我相信这样做是我能够接收 webhook 传输的原因,但由于某种原因,我不明白为什么订阅事件没有被传输。
最终,我的目标是接收包含 IAP 状态更改详细信息的正确有效负载,以便自动与我服务器上的用户数据库同步。
在尝试接收 IAP 推送通知时,有没有人在使用 RTDN 时遇到过这种情况?
【问题讨论】:
-
我还完成了设置 RTDN 的必要配置,方法是使用 pub/sub api 并授予所需的权限。但我不知道我会在哪里获得这些实时通知。如何在移动应用程序中实现它?任何帮助将不胜感激。
-
@NadeemShaikh:你必须在你的服务器上设置一个接收脚本或系统来监听和接收 RTDN 通知,你可以在 console.cloud.google.com 上进行管理。在那里并登录后,从左侧菜单项的长列表中选择 Pub/Sub,然后进入订阅:您可以在此处定义 Webhook 接收脚本或系统所在的 URL,以及将推送哪些 RTDN 通知到。