iOS 应用内购买。如何查看购买是否已经购买?

标签 ios cocoa-touch in-app-purchase storekit

我正在尝试将购买添加到我的应用程序中。但我不知道如何检查购买是否已经购买。据我了解,当有人购买时,我需要将其存储到 UserDefaults 或 KeyChain 中,然后检查它是否已经存在(这意味着该购买已经购买)。但是当用户在另一台设备上购买了这个 purchase prom 时呢?

我有代码可以提供有关 iTunes 中所有购买的信息。

func productsRequest(request: SKProductsRequest!, didReceiveResponse response: SKProductsResponse!) {

    }

响应对象有两个变量:“products”和“invalidProductIdentifiers”。但据我了解,产品包含来自 iTunes 的所有产品,而 invalidProductIdentifiers 包含我要求检查但 Apple 无法识别的所有标识符。所以我可以在哪里检查购买是否已经购买。

最佳答案

假设 iOS 7+,你应该验证收据,ala A complete solution to LOCALLY validate an in-app receipts and bundle receipts on iOS 7确定购买了什么,什么是有效的(在订阅或消耗品的情况下),并且如其他评论中所述,提供“恢复购买”UI 元素,允许用户将可共享购买干净地传播到新恢复/获得的设备。

AFA 响应对象,即目录(可购买元素)信息,而不是关于已购买元素的信息。为了使 IAP 正常工作, Assets 将由 Apple 批准,类似于应用程序本身,并在 iTunes Connect 中由您自己控制“准备出售”。对于该通行证,您向 Apple 发送您想要提供的时间的完整列表,Apple 返回给您的列表分为“如果您的用户尝试购买此产品,他们会成功”(产品)和“如果您的用户尝试买这个,他们会失败”(invalidProductIdentifiers)。

当您与沙盒/iTunes Connect 测试用户进行测试时,您的产品不需要获得 Apple 的批准,但对于生产代码,他们需要。

关于iOS 应用内购买。如何查看购买是否已经购买?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28395099/

相关文章:

ios - Delphi XE4 iOS 加载位图 - 未加载文件

ios - objective-c 使用 AutoResizingMask 将 UILabe 对齐到 UitableViewCell 内部

iphone - UILabel 中数字变化的动画

objective-c - 即时更改表格 View 行高

ios - 似乎有有效收据的 IAP 破解

ios - 如果我在iTC中添加IAP,目前没有IAP的上线应用会受到影响吗?

android - 将应用内计费与 Activity 分离

ios - 点击或按住字体图标时出现问号

iOS 7 自定义字体对齐

ios - 如何识别选定的静态 UITableViewCell