gpt4 book ai didi

ios - 为什么每次我向 Apple 请求 latest_receipt 对象都会改变?

转载 作者:行者123 更新时间:2023-12-01 16:23:16 25 4
gpt4 key购买 nike

关于应用内订阅购买,我不太明白一件事。

我在 iOS 客户端上这样获取收据:

private func loadReceipt() -> Data? {
guard let url = Bundle.main.appStoreReceiptURL else {
return nil
}

do {
let receipt = try Data(contentsOf: url)
return receipt
} catch {
print("Error loading receipt data: \(error.localizedDescription)")
return nil
}
}

并将其发送到我的服务器进行验证(用 Python 编写)。

def verify_receipt(self, receipt):
r = requests.post(config.APPLE_STORE_URL, json=receipt)
request_date_ms = DateUtils.generate_ms_from_current_time()
for item in r.json()['latest_receipt_info']:
expires_date_ms = int(item['expires_date_ms'])
if expires_date_ms > request_date_ms:
return True
return False

我不确定这是否是验证订阅是否仍然有效的正确方法。

我从 latest_receipt_info 获取了 expires_date_ms,如果它大于当前时间(以毫秒为单位),则订阅仍然有效。

但是我注意到,单独的 latest_receipt(应该与我刚刚发送的那个相同)实际上在我每次调用 API 时都在改变。但为什么?我没有订阅任何新内容,为什么最新的收据变了?

根据文档:

latest_receipt

Only returned for receipts containing auto-renewable subscriptions. For iOS 6 style transaction receipts, this is the base-64 encoded receipt for the most recent renewal. For iOS 7 style app receipts, this is the latest base-64 encoded app receipt.

最佳答案

如果这是针对沙盒的,则订阅会在预定义的时间段内自动续订。看: https://help.apple.com/app-store-connect/#/dev7e89e149d

关于ios - 为什么每次我向 Apple 请求 latest_receipt 对象都会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47801070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com