ios - restoreCompletedTransactions 并要求登录

标签 ios xcode storekit

这是我第一次集成应用内购买。我一切正常:我可以购买我想要的元素,也可以使用 restoreCompletedTransactions .
每次打电话restoreCompletedTransactions()我被要求输入用户名和密码。
这是因为我处于沙盒模式还是一旦上线也会发生这种情况?
如何查看用户之前是否购买过? (我知道我可以将它保存在用户设置中,但是通过轮询 Apple 服务器来检查它是否是购买的会很好,而无需用户输入用户名和密码)。
其他人如何处理?因为你肯定想知道他们是否退款。

最佳答案

引自 Apple Article有关如何“不”执行此操作的说明:

Restoring purchases prompts for the user’s App Store credentials, which interrupts the flow of your app: because of this, don’t automatically restore purchases, especially not every time your app is launched.



最好的方法是使用收据。

一般步骤是:

1) 您的应用通常会在第一次使用时要求付款

2)一旦客户付款(或订阅),然后

3) 您的应用程序应从 AppStore 下载收据,然后将私钥和证书详细信息的副本存储到您的服务器(如果是不可续订的订阅,则存储在云上)

4) 您的服务器应使用 AppStore 验证该收据。

5) 可选:您的服务器然后可以查询最后收据以确保用户的订阅始终是最新的。

6)一旦您的服务器满意,然后让应用程序知道现在可以解锁内容等。

换句话说,使用收据来验证而不是继续检索已完成的交易,否则每次他们需要启动您的应用程序时都会不断询问他们的 iTunes 密码,从而让您的客户望而却步。

更多资讯请看此apple video

我希望这有帮助

问候

海德

关于ios - restoreCompletedTransactions 并要求登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11788749/

相关文章:

ios - 在 swift 中添加分数和高分

iOS 沙盒测试用户帐户订阅管理

ios - 如何在 swift 4 中获取 ISO8601 格式?

objective-c - 通过拖动 UISlider 滚动图像

objective-c - 什么是正确的应用内购买产品类型?

php - 验证应用内购买的收据

ios - 检测用户是否在车内移动

ios - 如何转换 iPhone 应用程序以支持 iPad

ios - 图像尺寸相对于屏幕尺寸

ios - 我可以使用 watchOS2 从 WatchKit 应用程序发送网络电话吗?