【问题标题】:Receipt-Validation code for iOS app, not workingiOS应用程序的收据验证代码,不起作用
【发布时间】:2019-04-14 05:35:59
【问题描述】:

我第一次在 iOS 应用中实现了Receipt-Validation 代码,遵循Raywenderlich tutorial

尽管它在测试期间运行良好,但使用 Sandbox。实际上,它并没有按预期工作。

下载应用后,所有功能从一开始就可用;表示购买 iap 内容时没有检查。

在 Sandbox 的情况下,我需要购买才能获得收据,“购买”意味着“获得 iap 的内容”。

据我所知,在现实世界中,收据随应用程序一起提供。 我的解释是我可能没有在代码中检查我应该检查的内容。

非常感谢该领域专家的任何指导。

查看代码,除了确保它们是有效的(格式良好的)收据之外,似乎(确实)没有太多检查。但我想我需要更多的信息来检查 IAP 的内容是否已被支付。

以下是我认为的相关代码:

func validateReceipt() {

    receipt = Receipt()

    if let receiptStatus = receipt?.receiptStatus {
        guard receiptStatus == .validationSuccess else {
            return
        }

        // If verification succeed, we show information contained in the receipt.
        // print("Bundle Identifier: \(receipt!.bundleIdString!)")
        // print("Bundle Version: \(receipt!.bundleVersionString!)")

        if let originalVersion = receipt?.originalAppVersion {
            //print("originalVersion: \(originalVersion)")
        } else {
            //print("originalVersion: Not Provided")
        }

        if let receiptExpirationDate = receipt?.expirationDate {
            //print("Expiration Date: \(formatDateForUI(receiptExpirationDate))")
        } else {
            //print("Expiration Date: Not Provided")
        }

        if let receiptCreation = receipt?.receiptCreationDate {
            //print("receiptCreation: \(formatDateForUI(receiptCreation))")
        } else {
            //print("receiptCreation: Not Provided")
        }

        // At this point we should enable full features if it is not yet the case.
        .... code to unlock full features .....
    }
}

【问题讨论】:

    标签: ios swift storekit receipt-validation


    【解决方案1】:

    您应该检查类型为 17xx 的字段,您可以在其中找到产品标识符(字段类型 1702)和购买日期(字段类型 1704)。您在阅读应用内购买部分中提到的 Raywenderlich 教程对此进行了描述。

    因此,您可以检查用户是否使用您感兴趣的产品标识符购买了 IAP。产品标识符与您在 MyApps -> Feature -> IAP 的 App Store Connect 中选择的相同。

    【讨论】:

    • 这是有道理的。我正在试一试,希望它会奏效。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 2012-12-09
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    相关资源
    最近更新 更多