2017-03-15 96 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