如何在所有设备上提供IAP?

时间:2014-02-22 15:38:11

标签: ios in-app-purchase in-app-billing

我的应用提供应用内购买,以获取推送通知时的一些新闻提醒。推送通知应发送到与用于购买的相同Apple ID关联的所有设备。

目前,我想在“设置”屏幕上放置一个按钮,以恢复应用内购买,以检查该功能是否已在其他设备中购买。

有没有更好的方法来处理这项任务?如果是这样,任何提示/建议都将受到高度赞赏!

3 个答案:

答案 0 :(得分:1)

恢复购买选项是正确的选择,如果用户删除并重新安装应用程序,可能应该存在。

答案 1 :(得分:0)

您应该使用restore purchase功能:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

它将恢复用户在该帐户上进行的所有购买,在同一ios设备上的天气或其他设备。

此外,作为附注,如果您实施In-app purchases而不包含restore功能,Apple将不会接受您的ios应用

答案 2 :(得分:0)

或者在iOS7中,使用SKReceiptRefreshRequest。

self.refreshRequest = [[SKReceiptRefreshRequest alloc] init];
self.refreshRequest.delegate = self;
[self.refreshRequest start];

另请注意,此简单的还原过程并不一定适用于所有类型的产品。例如,至少在iOS6上,restoreCompletedTransactions不会恢复不可更新的订阅。但是iOS7中的情况似乎更复杂(见Non-renewing Subscriptions: Removed From Receipt?)。