iOS7/8中给定的appStoreReceiptURL是否有使用restoreCompletedTransactions的原因?
我正在将我的应用程序更新为新的iOS7/8应用程序内购买库。我现在看到,从iOS7开始,我们可以作为NSBundle的一部分访问 看起来我可以在任何时候访问这个URL及其伴随的数据,而无需与之交互或接口 以前,当客户安装我们的应用程序并希望恢复其应用程序内订阅时,应用程序将调用iOS7/8中给定的appStoreReceiptURL是否有使用restoreCompletedTransactions的原因?,ios,ios7,in-app-purchase,Ios,Ios7,In App Purchase,我正在将我的应用程序更新为新的iOS7/8应用程序内购买库。我现在看到,从iOS7开始,我们可以作为NSBundle的一部分访问 看起来我可以在任何时候访问这个URL及其伴随的数据,而无需与之交互或接口 以前,当客户安装我们的应用程序并希望恢复其应用程序内订阅时,应用程序将调用[SKPaymentQueue defaultQueue]的方法,并从中获取收据信息,一次一笔交易,应用程序将一次上传一笔交易到我们的服务器 然而,在iOS应用商店沙箱中进行测试时,现在我似乎能够从[[NSBundle m
[SKPaymentQueue defaultQueue]
的方法,并从中获取收据信息,一次一笔交易,应用程序将一次上传一笔交易到我们的服务器
然而,在iOS应用商店沙箱中进行测试时,现在我似乎能够从[[NSBundle mainBundle]appStoreReceiptURL]
获取一条主收据数据,将其上传到我的服务器,获取该用户进行的每个应用内交易的完整历史记录,然后根据需要在我的服务器上记录事务,并将通知发送回我的客户端
因此,为什么或何时需要调用
restoreCompletedTransactions
?在我的应用程序中,我销售单一的自动续费应用程序内订阅;目前在iOS7/8中,此API对其他用例是否仍有帮助?如果用户在其他设备上进行了购买,则在新设备上“恢复”该购买可能是有用的(或必要的)。restoreCompletedTransactions可以启用此还原操作。默认情况下,在这个新设备上,我相信>=iOS7样式的收据将不会有以前的购买。在>=iOS7上,SKReceiptRefreshRequest在许多情况下都可以工作
来自苹果:
在大多数情况下,你的应用程序所需要做的就是刷新它的收据和密码
在收据中交付产品。刷新的收据包含一个
用户在此应用程序、此设备或任何其他设备上的购买记录
其他设备。然而,一些应用程序需要采取另一种方法
出于以下原因之一:
如果使用Apple托管的内容,则恢复已完成的事务
为您的应用程序提供用于下载的事务对象
内容
如果您需要支持早于iOS 7的iOS版本,
如果应用程序收据不可用,请还原已完成的事务
相反
如果您的应用程序使用非续订订阅,则您的应用程序为
负责恢复过程
看