【问题标题】: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 无法识别的所有标识符。所以我可以在哪里检查购买是否已经购买。

【问题讨论】:

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


【解决方案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 的批准,但生产代码需要获得批准。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2015-01-02
    • 2011-12-07
    • 1970-01-01
    相关资源
    最近更新 更多