2017-03-15 43 views
2

我正在关注一个实现应用内购买的教程,https://www.youtube.com/watch?v=dwPFtwDJ7tc&t=1170s,当我尝试编写代码时,一行代码与本教程不同。SwiftyStoreKit语法已更改?

的视频说,写一行代码为:

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

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

然而,当我把它写的是拿出涉及另一部分是唯一的选择,这是“用”

如果我只是删除'using:'部分,则会发生错误。我是一个相当新的开发人员,如果有人能够解释这意味着什么,以及如何填写本节内容,那将是非常棒的。

回答

2

首先,您需要创建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() 
} 

我要注意的是,苹果文档中写,你不应该从你的应用程序发送收据到苹果的后端。应该这样做:

  1. 您的应用程序将收据发送到您的后端。
  2. 您的后端将收据发送至Apple后端进行验证。
  3. 你的后端从苹果获得响应。
  4. 您的后端将结果发送回您的应用程序的回执有效或无效。

在Apple文档中提供了有关密码的文档:“仅用于包含自动更新订阅的收据。您应用的共享密钥(十六进制字符串)。”

更多关于它here

+0

我读过的地方,我们不能使用'sharedSecretString作为! ReceiptValidator”。那是对的吗? – JayVDiyk

+0

*可以使用,而不是。抱歉错字 – JayVDiyk

+0

谢谢,但我不能奖励赏金,因为有一个最短时间限制 – JayVDiyk