所以这让我疯狂了好几天了。 我们在iOS应用程序上实现了app购买订阅,我们正在我们的服务器上进行验证,所以我们正在做的基本上是购买,然后将收据发送到我们的服务器进行验证,并将其保存在我们的数据库中。 发生的事情是,在沙箱中进行测试时,一切都运行良好,我们收到收据,我们在后端进行验证,我们正在保存/更新返回的数据,但是当我们在应用程序商店发布应用程序时,我们遇到了一个主要问题,即付款正在进行,苹果正在向用户收费,但没有收据。
我正在尝试使用以下内容检索收据:
func loadReceipt() -> Data? {
guard let url = Bundle.main.appStoreReceiptURL else {
return nil
}
do {
let data = try Data(contentsOf: url)
return data
} catch {
print("Error loading receipt data: \(error.localizedDescription)")
return nil
}
}
func uploadReceipt(productId: String, completion: @escaping ErrorCompletion) {
if let receiptData = loadReceipt() {
let receipt = Receipt()
receipt.createdBy = User.current()
receipt.receipt = receiptData.base64EncodedString(options: [])
print(receipt.receipt)
validateReceipt(receipt: receipt.receipt!, productId: productId, completion: completion)
}
}
如果收据为零且仍然没有运气,我甚至尝试使用SKReceiptRefreshRequest()
。
有人知道发生了什么事吗?
提前致谢!