新推出的Google Play计费库does not support The SubscriptionManager of Unity IAP。
通常,我会使用SubscriptionManager验证收据,并检查is_subscribed、is_expired等属性,然后执行相应的操作。
Unity的文档没有更新此新信息。Google Play计费文档没有提供有关如何验证订阅是否仍然有效的解决方案或见解。“不支持”不是一个有效的回答,订阅是许多使用Unity制作的游戏和软件的一部分。
如何使用Unity IAP在Unity项目中验证Google Play订阅是否有效且未过期。如果无法使用Unity IAP,欢迎使用任何其他解决方案或见解。
发布于 2020-09-29 09:11:46
这个新插件似乎强制要求在服务器端验证用户订阅。在实现插件时,我必须创建一个后端服务,将过期日期返回给我们的应用程序,因为我们不能再使用SubscriptionManager来获取这些信息。
我真的不能推荐具体的方法,因为每个人的后端都是不同的。对于我们来说,我们在我们的应用程序和数据库可以与之通信的DigitalOcean droplets上利用Docker容器。这允许我们为后端服务提供一个集中的位置,我们使用Flask用Python语言编写后端服务。
我们已经设置了一个,它可以遍历我们的数据库,根据保存的DateTime找到每个已过期的订阅,并验证它是否已续订。如上所述,我们向该服务添加了一个额外的端点,用于获取Google Play订阅的到期日期。
订阅信息可以通过访问Google Play REST API的purchases.subscriptions.get获取。这将返回一个SubscriptionPurchase对象,该对象提供了相关信息,您可以对其进行处理,以找出is_subscribed、is_expired等属性。
可以直接从你的Unity应用程序/游戏中发送这篇文章,但是这也可能使中间人攻击成为可能(诚然,我在这方面的知识还不是很多,所以我建议你自己阅读这篇文章)。
另外,作为一个一般性建议,我建议您尝试在此处和UnityIAP子论坛上发布问题。UnityIAP支持人员非常活跃,即使他们不能提供帮助,因为这是一个谷歌实现,这绝对应该把它放在他们的雷达上!只要有可能,我就试着在那里发帖,因为这可以让他们对UnityIAP进行改进。(:
发布于 2020-11-19 15:53:48
是的,目前我们应该使用服务器端API来获取订阅相关信息。因为SubscriptionManger依赖于开发人员的有效负载,这是不推荐的。见第二段https://developer.android.com/google/play/billing/developer-payload
https://stackoverflow.com/questions/62943021
复制相似问题