ios - 刷新收据是否要求提供 App Store 凭据?

标签 ios in-app-purchase storekit receipt-validation

我一直在示例应用程序中测试 iOS 的应用程序内购买。我需要弄清楚是否可以在启动时立即调用 refreshReceipt API 来检查用户是否有资格进行某些试用期订阅等。

我在 AppDelegate 的 application:didFinishLaunching:options 方法中调用了 refreshReceipt,但它要求我提供 AppStore 凭据,基本上是 Sandbox 用户的密码。我没想到从苹果文档中读到的这种行为。这是沙盒环境中发生的事情还是生产环境中也发生的事情。

此外,恢复购买是否会触发 AppStore 登录警报。苹果文档说是这样,但最近我发现我手机上的一个音乐应用程序在我选择该选项时没有要求提供凭据。他们可能没有调用 StoreKit 的 RestorePurchase API,而是使用自己的机制。

最佳答案

只要设备上没有收据,您就会收到登录提示。在沙箱中,没有安装收据,因此您总是会看到弹出窗口。您还应该注意到,收据在沙盒中刷新后仍然不存在,除非您进行了购买。

如果用户登录到他们的 iTunes 帐户,则收据应该始终存在。

对于恢复,我认为它遵循相同的逻辑(如果没有收据则要求提示),但这与苹果的说法相矛盾。

关于ios - 刷新收据是否要求提供 App Store 凭据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56558018/

相关文章:

ios - 在 ios dev Schema 中禁用 firestore

ios - Swift:在纺车概念中为 subview 启用 userInteractionEnabled

ios - SKPaymentQueue : What happens if I never call finishTransaction:?

android - 应用内结算错误

ios - 使用 StoreKit 显示有关其他应用程序的信息。 (不是应用内购买)

ios - 在 StoreKit 中开始付款之前,就会弹出 "Sign In to iTunes Store"对话框

ios - 遍历数组然后将当前对象与字符串进行比较

ios - 如何将 Unity 集成到 Swift 3 iOS 项目中

ios - 在 App Purchase 产品请求中更新用户界面的问题

ios - AppsFlyer 的 SDK 收据验证失败