android - 服务器收到订阅状态更改通知时如何识别用户

标签 android google-play

根据Android开发人员指南。当用户购买或取消订阅时,我们的服务器将收到发布/订阅通知。

但是似乎我们没有任何信息可以识别用户。如何相应地在服务器中修改用户数据?

以下是我收到的通知

{"version":"1.0","packageName":"com.diamondtech.streammap","eventTimeMillis":"1557833856021","subscriptionNotification":{"version":"1.0","notificationType":2,"purchaseToken":"celgdoceflgifibejhfgafpd.AO-J1OxoputCKFIjQt7QgnF5hSg8jiqDCNEiBM-8kBEOTwXr4oy-33LGr8l6h2Ih1GXX7yjgcptIaatVFN5EHT4_sywD5-qruOhOJZVdwBnGM71-8N-xxxxxxxxxxx","subscriptionId":"premium"}}

以及Google验证API的响应
{  "kind": "androidpublisher#subscriptionPurchase", 
"startTimeMillis": "1557832655139",  "expiryTimeMillis":
"1557834750372",  "autoRenewing": false,  "priceCurrencyCode": "TWD", 
"priceAmountMicros": "160000000",  "countryCode": "TW", 
"developerPayload": "",  "cancelReason": 1,  "orderId":
"GPA.3318-4223-0272-90442..6",  "linkedPurchaseToken":
"cjnnjplpglkmdmdhbhaecobo.AO-J1OzD_JJr1Z8pzSDvJSjujfHVp9EQUsUnBv2kf5JocYsXpT-rX954WIuOSAtmLbMzqJmHudnwvsJll1GnXThj6JoDFSAR2E01fa4eZ7lUIozMOh4a_xxxxxxxxxxxx",
"purchaseType": 0 }

最佳答案

答案很晚,但是由于没有答案,这可能至少可以帮助某人。
仅当客户使用“通过Google订阅”时,您才能获得个人信息:
https://developers.google.com/news/subscribe/
如果您有一个用户在其中购买订阅的应用程序,那么您会从Google获得带有PurchaseToken的收据。并且由于您知道应用程序中的用户,因此将用户信息以及收据(最重要的是purchaseToken)保存在数据库中。
收到通知时,将通知中的purchaseToken与您的数据库匹配,以确定它属于哪个用户。
请注意,如果用户取消然后重新订阅,他们将获得一个新的purchaseToken,而原始的将在Google的收据中的“linkedPurchaseToken”下:
https://developers.google.com/android-publisher/api-ref/purchases/subscriptions#resource

关于android - 服务器收到订阅状态更改通知时如何识别用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56130192/

相关文章:

android - 我的应用程序与 Google Play 商店上的 Nexus 7 不兼容

android - 订阅升级到inapp产品

Android 开发者控制台报错

android - 无法运行 "phonegap run android",抛出异常

android - 处理程序每​​ 5 秒运行一次任务 Kotlin

android - 适用于 Unity 的 Google In-App Review 未显示,未引发错误

android - Google 登录错误 : Status Code: SIGN_IN_REQUIRED when signing in with Google on android

java - android studio 在将字符串添加到 textview 时给出不兼容的类型

android - BitmapFactory 解码 BMP 图像

android - 在 android 中,如何恢复上一个 Activity ,点击第二个 Activity 的按钮