我的理解是,我应该采取哪些步骤呢?
1) 获取
SKPaymentTransactionStatePurchased
2) 从 SKPaymentQueue 中删除并通过
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
提供内容3) 验证收据,如果无效,则阻止刚提供的内容
还是我应该将第二个步骤改为第三个步骤呢?
1) 获取
SKPaymentTransactionStatePurchased
2) 验证收据,如果无效,则不提供内容
3) 无论如何都要从
SKPaymentQueue
删除[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
在第一种情况下,用户可以在购买后立即关闭互联网连接,因此我将无法验证收据。但在第二种情况下,在第1步和第2步之间可能会出现一些网络问题,因此我将无法完成交易并提供内容,这将导致糟糕的用户体验。
所以,您选择了哪种方式来开发您的应用程序,为什么呢?
我的选择
我选择了第二种情况,因为选择第一种情况会使我的应用程序易受 iAP Cracker 的攻击。