iOS 应用内购买。如何查看购买是不是已经购买?
Posted
技术标签:
【中文标题】iOS 应用内购买。如何查看购买是不是已经购买?【英文标题】:iOS in app purchase. How to check if purchase already bought?iOS 应用内购买。如何查看购买是否已经购买? 【发布时间】:2015-02-08 14:32:43 【问题描述】:我正在尝试将购买添加到我的应用程序中。但我不知道如何检查购买是否已经购买。据我了解,当有人购买时,我需要将其存储到 UserDefaults 或 KeyChain 中,然后检查它是否已经存在(这意味着该购买已被购买)。但是当用户在另一台设备上购买了这个购买舞会时呢?
我的代码可以为我提供有关 iTunes 中所有购买的信息。
func productsRequest(request: SKProductsRequest!, didReceiveResponse response: SKProductsResponse!)
响应对象有两个变量:“products”和“invalidProductIdentifiers”。但据我了解,产品包含来自 iTunes 的所有产品,并且 invalidProductIdentifiers 包含我要求检查但 Apple 无法识别的所有标识符。所以我可以在哪里检查购买是否已经购买。
【问题讨论】:
您需要提供一个恢复按钮。并执行 IAP 恢复购买的产品,如下所示:developer.apple.com/library/ios/documentation/… A complete solution to LOCALLY validate an in-app receipts and bundle receipts on iOS 7的可能重复 【参考方案1】:假设 iOS 7+,您应该验证收据,ala A complete solution to LOCALLY validate an in-app receipts and bundle receipts on iOS 7 以确定购买了什么,什么是有效的(在订阅或消耗品的情况下),并且如其他评论中所述,提供“恢复购买” UI 元素,允许用户将可共享的购买清晰地传播到新恢复/获取的设备。
AFA 响应对象,即目录(可购买物品)信息,而不是有关已购买商品的信息。为了使 IAP 正常工作,资产将由 Apple 批准,类似于应用程序本身,并且在 iTunes Connect 中处于您自己的“准备出售”控制之下。对于该通行证,您向 Apple 发送您想要提供的时间的完整列表,Apple 会将列表分为“如果您的用户尝试购买此产品,他们将成功”(产品)和“如果您的用户尝试买这个,他们会失败”(invalidProductIdentifiers)。
当您使用沙盒/iTunes Connect 测试用户进行测试时,您的产品不需要获得 Apple 的批准,但生产代码需要获得批准。
【讨论】:
以上是关于iOS 应用内购买。如何查看购买是不是已经购买?的主要内容,如果未能解决你的问题,请参考以下文章