我在我的应用程序中遇到了应用程序内购买拒绝问题之一,需要一些帮助。
这个应用内有什么用?
在我们的应用程序中,我们可以选择让用户成为高级用户。用户可以成为高级用户以享受一些好处,并且与时间相关。有两个定义它们的应用内产品
- 一个月的高级服务。
- 一年优质服务。
由于这些是基于时间的服务,用户期望一旦他/她在指定时间内从他/她的所有其他设备购买产品,这些服务应该可供该用户使用。为了跟踪用户是否是高级服务用户,一旦购买完成,应用程序会在服务器中写入一个关于高级服务的条目。因此,当用户使用其他设备并登录时,他/她可以毫无问题地享受优质服务。出于这个原因,我将上述产品创建为“消耗品”,认为它是由我们的服务器控制的,不会有任何问题。但苹果拒绝了,并要求我将产品更改为“非续订订阅”。
这是苹果对此的评价
我们发现您的一个或多个 In App Purchase 产品的可购买性类型设置不当,这不符合 App Store 审核指南。
“1 个月和 1 年的高级帐户服务”IAP 设置为消耗品。
但是,根据产品功能,使用“应用内购买不可更新订阅”类型更为合适,因为您的应用程序提供的服务需要用户预付费才能访问内容或接收服务。
一旦创建了应用内购买产品,就无法更改可购买性类型。因此,您需要创建一个具有正确可购买性类型的新应用内购买产品。要在 iTunes Connect 中创建新的应用内购买,请转到管理您的应用内购买,选择您的应用,然后单击“新建”。当前产品将在 iTunes Connect 中显示为“已拒绝”。
不可再生订阅内容必须可供单个用户拥有的所有 iOS 设备使用,如 App Store 审核指南的指南 11.6 中所述:
11.6 使用 IAP 的内容订阅必须至少持续 7 天,并且用户可以从他们的所有 iOS 设备上使用
如果您选择使用用户注册来满足此要求,请记住,要求用户注册是不合适的。此类用户注册必须是可选的。向用户明确说明,只有通过注册,他们才能访问所有 iOS 设备上的内容。如果他们希望在未来访问其他 iOS 设备上的内容,并为他们提供一种稍后注册的方式。
有关可购买性类型的更多信息,请参阅 iTunes Connect 开发人员指南。
现在我已经创建了新的应用内产品,这些产品是非更新的。但这与我之前提到的工作方式相同,即服务器跟踪用户是否是高级用户,到期日期。当用户转到其他设备并登录时,该应用程序会知道用户是否是高级用户并基于该应用程序的工作。
但我对此有几个问题,
- 我是否需要在应用程序中提供“恢复”按钮?如果是这样,目的是什么以及它是如何工作的?
- 由于用户只有在登录应用程序后才能访问此服务(它与应用商店帐户不同)。这两个登录名会有什么问题吗?
请分享您的宝贵意见。