Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS7/8中给定的appStoreReceiptURL是否有使用restoreCompletedTransactions的原因?_Ios_Ios7_In App Purchase - Fatal编程技术网

iOS7/8中给定的appStoreReceiptURL是否有使用restoreCompletedTransactions的原因?

iOS7/8中给定的appStoreReceiptURL是否有使用restoreCompletedTransactions的原因?,ios,ios7,in-app-purchase,Ios,Ios7,In App Purchase,我正在将我的应用程序更新为新的iOS7/8应用程序内购买库。我现在看到,从iOS7开始,我们可以作为NSBundle的一部分访问 看起来我可以在任何时候访问这个URL及其伴随的数据,而无需与之交互或接口 以前,当客户安装我们的应用程序并希望恢复其应用程序内订阅时,应用程序将调用[SKPaymentQueue defaultQueue]的方法,并从中获取收据信息,一次一笔交易,应用程序将一次上传一笔交易到我们的服务器 然而,在iOS应用商店沙箱中进行测试时,现在我似乎能够从[[NSBundle m

我正在将我的应用程序更新为新的iOS7/8应用程序内购买库。我现在看到,从iOS7开始,我们可以作为NSBundle的一部分访问

看起来我可以在任何时候访问这个URL及其伴随的数据,而无需与之交互或接口

以前,当客户安装我们的应用程序并希望恢复其应用程序内订阅时,应用程序将调用
[SKPaymentQueue defaultQueue]
的方法,并从中获取收据信息,一次一笔交易,应用程序将一次上传一笔交易到我们的服务器

然而,在iOS应用商店沙箱中进行测试时,现在我似乎能够从
[[NSBundle mainBundle]appStoreReceiptURL]
获取一条主收据数据,将其上传到我的服务器,获取该用户进行的每个应用内交易的完整历史记录,然后根据需要在我的服务器上记录事务,并将通知发送回我的客户端


因此,为什么或何时需要调用
restoreCompletedTransactions
?在我的应用程序中,我销售单一的自动续费应用程序内订阅;目前在iOS7/8中,此API对其他用例是否仍有帮助?

如果用户在其他设备上进行了购买,则在新设备上“恢复”该购买可能是有用的(或必要的)。restoreCompletedTransactions可以启用此还原操作。默认情况下,在这个新设备上,我相信>=iOS7样式的收据将不会有以前的购买。在>=iOS7上,SKReceiptRefreshRequest在许多情况下都可以工作

来自苹果:

在大多数情况下,你的应用程序所需要做的就是刷新它的收据和密码 在收据中交付产品。刷新的收据包含一个 用户在此应用程序、此设备或任何其他设备上的购买记录 其他设备。然而,一些应用程序需要采取另一种方法 出于以下原因之一:

如果使用Apple托管的内容,则恢复已完成的事务 为您的应用程序提供用于下载的事务对象 内容

如果您需要支持早于iOS 7的iOS版本, 如果应用程序收据不可用,请还原已完成的事务 相反

如果您的应用程序使用非续订订阅,则您的应用程序为 负责恢复过程