SwiftyStoreKit 语法改变了吗?

标签 swift swift3 in-app-purchase

我正在遵循实现应用内购买的教程,https://www.youtube.com/watch?v=dwPFtwDJ7tc&t=1170s当我尝试编写它时,有一行代码与教程不同。

视频中说将代码行编写为:

SwiftyStoreKit.verifyReceipt(password: sharedSecret, completion: {(more code added here)})

但是,当我写出来时,出现的唯一选项涉及另一部分,即“使用:”

SwiftyStoreKit.verifyReceipt(using: 'ReceiptValidator', password: 'String?', completion: '(VerifyReceiptResult) -> Void')

如果我只是删除“using:”部分,则会发生错误。我是一名相当新的开发人员,因此如果有人能够解释这意味着什么以及如何填写此部分,那就太好了。

最佳答案

首先,您需要创建 AppleReceiptValidator 对象并将该对象传递给第一个参数,如下所示。

let validator = AppleReceiptValidator(service: .production)
SwiftyStoreKit.verifyReceipt(using: validator, password: "Your_shared_secret") { (result) in
    switch result {
        case .success(receipt: let receiptInfo): self.reactOn(info: receiptInfo)
        case .error(error: let receiptError): self.reactOn(error: receiptError)
        }
    completion()
}

我想注意到,Apple 文档中写道,您不应从应用程序将收据发送到 Apple 后端。应该这样完成:

  1. 您的应用将收据发送到您的后端。
  2. 您的后端将收据发送到 Apple 后端进行验证。
  3. 您的后端收到来自苹果的响应。
  4. 您的后端将结果发送回您的应用程序,无论收据有效还是无效。

Apple 文档中关于密码的说明是:“仅用于包含自动续订订阅的收据。您的应用程序的共享 key (十六进制字符串)。”

更多信息here .

关于SwiftyStoreKit 语法改变了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42819440/

相关文章:

ios - 使用 UISegmentedControl 更改 UIPickerView 标签

ios swift : Remove duplicates in an array of images

ios - 使用MeasurementFormatter 将米显示为英尺

swift - 全局函数序列(状态 :next:) and type inference

ios - ios如何处理同一设备上不同用户的应用内购买自动续订订阅?

ios - 测试自动续订订阅

ios - 应用内购买验证 - 根据用户验证购买

swift - 使用 Vapor 上传文件

ios - 我们如何使用 swift 和 iOS 11+ 进行直线图像转换

ios - UICollectionView 以编程方式