在过去的几天里,我一直在设置应用程序账单,并试图走正确的道路。本指南建议使用安全的后端服务器来存储购买令牌,而不是本地存储数据。在服务器上验证购买的文档非常少,我不确定我是否走对了这条路。
我正在使用云火商店来存储标题中提到的购买信息。我有几个问题:
我是否应该从服务器读取我的产品id,而不是将其硬编码到apk中?
在这种情况下,我应该多久读取一次设备id并在数据库上进行搜索,以确保用户购买了有效的设备?是一次性购买还是间歇性购买?
如果我这样做,当购买者更换他们的手机时会发生什么?设备ID将是不同的,我不会有他们的新设备成功购买的记录。或者我在这里查询skupurchase,它返回已经拥有的物品,将这些新的详细信息写入数据库?
最后,我是否应该将成功购买标志存储在共享首选项中,这样我就不会经常读取数据库,并且用户可以脱机使用设备?
我本来打算用这个答案here让用户发邮件的,但是有很多评论说这非常具有侵入性,我只需要它做一件简单的事情。所以我选择了设备ID路由。
顺便说一句,我只有一个产品,解锁全部功能,是非消耗品。
正确的做法是什么呢?
发布于 2019-06-28 12:56:40
这就是我解决同样问题的方法。它可能与您的场景无关。希望能有所帮助。
我是否应该从服务器读取我的产品id,而不是将其硬编码到apk中?
您应该将productID存储在代码中,因为它们将用于提供编码到应用程序中的功能。
我/我需要多久读取一次设备id?
您不应该依赖设备id,因为您已经提出了有关用户更换电话的问题。您可能希望实现登录系统,并让用户在购买产品之前登录到应用程序。这将使您的订阅设备独立。
这个过程应该是:
应用程序用户再次点击购买按钮并完成purchase.
我应该多久从服务器上查看一次购买明细?
您应该断断续续地检查购买详细信息。
为什么?用户可能会在一段时间后要求退款,或者支付网关会因为某种原因而使购买无效。
在IMO中,应该有两种类型的同步方法:静默和强制。在我的方法中,静默同步将每9天检查一次互联网。如果互联网不可用,它什么也做不了。而强制同步将从上次同步起每25天检查一次互联网。如果互联网不可用,它会要求用户打开它,否则用户将无法使用该应用程序。
我使用的是一个月的订阅期限,但由于你有一个非消耗性产品,你可以负担2-4个月的强制同步期限。
我应该将成功购买标志存储在共享首选项或其他什么地方,这样我就不会经常读取数据库,用户可以脱机使用设备吗?
同步过程和登录将解决此问题。
我想你可能不愿意为这么小的东西实现一个登录系统,并认为它会让更少的用户购买你的产品。但通过实现谷歌身份验证,它将变得更快,用户将不会对此感到沮丧。
实现这种方法涉及到大量的服务器端逻辑。
https://stackoverflow.com/questions/56766084
复制相似问题