【发布时间】:2021-05-20 10:24:33
【问题描述】:
Auto-renewable Subscription 的代码在 iOS 上运行良好,我将相同的代码复制到 Mac Cocoa 以在新应用程序(沙盒)中进行测试。购买过程也可以正常工作,但是当它过期并且我尝试恢复购买时会出现问题,它总是给出最旧的交易而不是最新的。
在 iOS 中,receipInfo.lastObject 给出最新的正确的
在 MacOS 中,最新的是数组的第一个,receipInfo.firstObject
这应该没有什么不同,因为 iOS 和 MacO 都使用相同的 StoreKit,但只是不知道为什么会发生这种情况。
do {
let requestData = try JSONSerialization.data(withJSONObject: jsonDict, options: JSONSerialization.WritingOptions.prettyPrinted)
let storeURL = URL(string: verifyReceiptURL)!
var storeRequest = URLRequest(url: storeURL)
storeRequest.httpMethod = "POST"
storeRequest.httpBody = requestData
let session = URLSession(configuration: URLSessionConfiguration.default)
let task = session.dataTask(with: storeRequest, completionHandler: { [weak self] (data, response, error) in
if let data = data , error == nil {
do {
let jsonResponse = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers)
guard let receiptInfo: NSArray = jsonResponse["latest_receipt_info"] as? NSArray else {
return
}
debugPrint(receiptInfo)
let info = receiptInfo.lastObject
......
} catch let parseError {
print(parseError)
}
}
})
task.resume()
} catch let parseError {
print(parseError)
}
【问题讨论】:
标签: macos in-app-purchase subscription