测试地址
https://sandbox.itunes.apple.com/verifyReceipt
正式地址:
https://buy.itunes.apple.com/verifyReceipt
示例
import Foundation
class InAppPurchaseManager {
static let shared = InAppPurchaseManager()
private let verifyURL = URL(string: "https://buy.itunes.apple.com/verifyReceipt")!
func verifyReceipt(receiptData: Data, completion: @escaping (Bool) -> Void) {
let receiptString = receiptData.base64EncodedString(options: [])
let parameters = ["receipt-data": receiptString]
guard let jsonData = try? JSONSerialization.data(withJSONObject: parameters, options: []) else {
completion(false)
return
}
var request = URLRequest(url: verifyURL)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = jsonData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data,
let httpResponse = response as? HTTPURLResponse,
error == nil,
httpResponse.statusCode == 200 else {
completion(false)
return
}
do {
let jsonResponse = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
if let status = jsonResponse?["status"] as? Int, status == 0 {
completion(true)
} else {
completion(false)
}
} catch {
completion(false)
}
}
task.resume()
}
}