6

AppStore 审核者要求我们购买Non-renewing subscriptions类型不会强制用户注册。他的意思也是用户没有注册他也可以购买Non-renewing subscriptions类型

而且Apple Document 要求Non-renewing subscriptions必须可以恢复。他说 :

Store Kit 不会自动恢复非续订订阅和消耗品。但是,非续订订阅必须是可恢复的。要恢复这些产品,您必须在购买时在您自己的服务器上记录交易,并提供您自己的机制来将这些交易恢复到用户的设备。

所以当用户注册时,我会给用户一个唯一的userId,他可以用他的用户名和密码获取userId,这样我就可以在不同的ios设备上共享用户的信息,我可以恢复交易,因为他们有一个唯一的userId .

但是问题是这样的:当用户未注册时,我的服务器也会给他们一个唯一的 userId ,未注册用户会将 userId 保存到.plist. 他们还可以恢复交易。但是当他删除我的应用程序,然后下载一次时,userId 丢失了,所以他无法恢复交易。他将是一个普通的默认用户。

appStore 是否会因为以下原因拒绝我的应用:

无法在未注册的情况下恢复非续订订阅的交易,这会在恢复前删除应用程序

如果 appStore 会拒绝,如何解决它,谢谢。

4

3 回答 3

4

我已将我的应用程序提交到 appStore。

我为注册或登录的非续订订阅恢复交易。

我不会为不“注册”和“删除我的应用程序”的非续订订阅恢复交易。

我的应用已获批准

于 2013-07-18T05:47:30.977 回答
1
  • 对于不可更新的应用内商品,注册必须是可选的。
  • 您可以给他们一条消息,如果您想在多个设备上使用,那么您必须注册并登录。
  • 注册时,电子邮件和手机号码等个人信息必须是可选的,您必须具体解释为什么您在注册时保留电子邮件(例如密码恢复)。
  • 就像之前的评论一样,如果不可再生项目的inapp不是那么贵,他们可以接受申请。但是,如果 inapp 的成本很高,他们不会允许你违反他们的任何规则。

注意:您可以使用一种机制来使用 UUID 并将其存储在钥匙串中。如果您重新安装该应用程序,您可以再次从钥匙串中获取它并使用相同的 UUID,您可以在您的服务器上管理到期。

于 2014-02-06T11:26:38.857 回答
1

Apple 建议使用 iCloud 来保存购买数据:

#if USE_ICLOUD_STORAGE
NSUbiquitousKeyValueStore *storage = [NSUbiquitousKeyValueStore defaultStore];
#else
NSUserDefaults *storage = [NSUserDefaults standardUserDefaults];
#endif

NSData *newReceipt = transaction.transactionReceipt;
NSArray *savedReceipts = [storage arrayForKey:@"receipts"];
if (!receipts) {
    // Storing the first receipt
    [storage setObject:@[newReceipt] forKey:@"receipts"];
} else {
    // Adding another receipt
    NSArray *updatedReceipts = [savedReceipts arrayByAddingObject:newReceipt];
    [storage setObject:updatedReceipts forKey:@"receipts"];
}

[storage synchronize];

至少比在用户删除应用时丢掉购买信息要好。让客户为一项服务支付两次费用并不是很好的用户体验。

于 2014-12-01T08:16:36.367 回答