ios - 在应用程序之外购买的 StoreKit 项目(从我的应用程序重定向到 App Store 应用程序)

标签 ios in-app-purchase storekit

我有一个使用非续订订阅模式的应用程序。使用应用内购买测试帐户时效果很好。但是,在 Apple 的生产服务器上,有时用户会出于某种原因从我的应用程序转移到应用程序商店(有时是因为更新了计费信息,有时是为了回答安全问题)。这是在付款被添加到队列和 Apple 自己的付款流程中之后。一旦用户点击警报 View 选项进入应用商店,我的交易观察者将获得一个带有 SKPaymentTransactionStateFailed 的交易。状态。没关系。但是,在用户更新他们的账单信息或确认他们的安全问题后,系统会询问他们(仍在应用之外)是否仍想购买应用内购买。完成后,它们将被带回我的应用程序(它已自行关闭),并且事务观察者没有返回任何内容。仅当检索到产品列表时,队列才会更新为购买的产品。观察者注册通知之前

所以我的问题是:

如何处理在我的应用之外(在应用商店应用中)进行的购买?

如果在应用程序打开之前进行了购买(但未完成),队列会在什么时候更新? 我知道我应该让观察者一直走,但我想避免让用户购买该元素两次,而不知道他们已经购买了它。

最佳答案

通过一些试验和错误,我似乎已经解决了我的问题

事实证明,我没有为 SKPaymentQueue 初始化我的事务观察器。很快就好了。它需要初始化并添加为 application:didFinishLaunchingWithOptions: 中的事务观察器。方法,再也不迟了。至于交易何时到来,paymentQueue:updatedTransactions下次您的应用程序处于事件状态时,您的交易观察者的方法将通过购买的交易被调用。重要的是要注意,当您被带到 App Store 时,您的应用可能会或可能不会出于某种原因关闭一次,如果它最终关闭,该方法将在下次应用打开时被调用。

关于ios - 在应用程序之外购买的 StoreKit 项目(从我的应用程序重定向到 App Store 应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13591392/

相关文章:

ios - 为什么 UICollectionViewCell 的导出为零?

ios - 如何使用 Xcode 9 添加 gitLab 存储库?

in-app-purchase - 解决应用内购买的无效产品 ID 问题?

iphone - 我们可以检查用户的 In App Purchase 是否已被 Apple 退款?

iOS - 阴影在 UILabel 上传播

ios - 如何在 ionic 中增加 IOS 设备的启动画面时间

iphone - iOS 应用内购买分步教程

ios - 应用内购买

ios - 当状态为 "Waiting for Review"时,我可以测试应用内购买吗?

iOS IAP Error Domain=SKErrorDomain Code=2 in Production