在设置Android实时开发者通知(RTDN)作为接收IAP订阅状态更改到我的Web服务器的方式之后,我实际上只从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”授予“发布/订阅发布者”的发布者权限说是必要的步骤;我相信这样做是我能够接收Webhook传输的原因,但是由于某些原因,我不明白为什么订阅事件没有得到传输。
最终,我的目标是接收包含IAP状态更改详细信息的正确有效负载,以便自动与服务器上的用户数据库同步。
有人在尝试接收IAP推送通知时遇到过RTDN吗?
答案 0 :(得分:0)
我发现了这一点:我在Google指南中错过了我期望的有效负载是在上面粘贴的“数据”:“ longstringofcharacters”部分中以base64编码的方法。一旦意识到这一点,便从日志中解码了一个,并找到了我所期望的IAP订阅详细信息。