我正在遵循实现应用内购买的教程,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 后端。应该这样完成:
- 您的应用将收据发送到您的后端。
- 您的后端将收据发送到 Apple 后端进行验证。
- 您的后端收到来自苹果的响应。
- 您的后端将结果发送回您的应用程序,无论收据有效还是无效。
Apple 文档中关于密码的说明是:“仅用于包含自动续订订阅的收据。您的应用程序的共享 key (十六进制字符串)。”
更多信息here .
关于SwiftyStoreKit 语法改变了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42819440/