使用in_app或latest_receipt_info获取可自动更新的iOS 7风格交易的最新收据?

问题描述 投票:47回答:5

我正在尝试验证自动更新的In App购买是否已过期服务器端(不在设备上)。

我正在使用Apple的Grand Unified Receipt(iOS 7风格的交易)。 Apple返回的响应包含带有一系列收据的in_applatest_receipt_info元素。 in_app JSON元素包含比latest_receipt_info更少的收据。我期待两个元素包含相同的数字或收据。

此外,我期待in_app元素将包含所有收据。然而,似乎latest_receipt_info实际上包含所有收据。 Apple文档似乎建议使用in_app查找最新收据。

我很惊讶地看到latest_receipt_info,因为Apple的文档声明这个元素是“仅针对iOS 6风格的交易收据返回自动续订订阅”。 (不是iOS 7+)。

我应该迭代哪个JSON元素来查找自动更新的iOS 7风格交易的最新收据:in_applatest_receipt_info

ios in-app-purchase server-side subscription in-app
5个回答
11
投票

只想表明只有latest_receipt_info字段才会返回最新的续订收据。这是基于我们实际从Apple获得的回报。

相关文档在page 21.

虽然它声明latest_receiptlatest_receipt_info字段是“仅针对自动续订订阅的iOS 6样式交易收据返回”,但我们发现它们是在我们的iOS 7收据中返回的。 in_app对象中的receipt字段也返回了几乎相同的数据,但不包含最新的收据信息,这是您在自动续订时关注的信息。


10
投票

要验证自动续订订阅是否已过期,请检查latest_receipt_info元素。

这是目前(2017-08-09)正式记录在in_applatest_receipt_info元素:

in_app

在JSON文件中,此键的值是一个数组,其中包含基于输入base-64收据数据中存在的应用内购买交易的所有应用内购买收据。对于包含自动续订订阅的收据,请检查latest_receipt_info密钥的值以获取最新续订的状态。

(Qazxswpoi)

source

仅对包含自动续订订阅的收据返回。对于iOS 6样式的交易收据,这是最近续订的收据的JSON表示。对于iOS 7样式的应用收据,此键的值是包含所有应用内购买交易的数组。这不包括已由您的应用标记为已完成的耗材产品的交易。

(Qazxswpoi)


3
投票

latest_receipt_info是关于此的最新和最清晰的讨论。希望这可以帮助。


1
投票

Babken Vardanyan在多个回答帖子中提到有时会丢失latest_receipt_info。我在这个帖子source的收据中看到的一个有趣的事情是latest_receipt_info vs in_app的区别。做差异时,我注意到链中的第一个收据丢失了(包含is_trial_period = true)。它没有生成相应的应用内收据。

正如文档中所述:This表示使用latest_receipt_info作为“iOS 7样式应用收据,此键的值是包含所有应用内购买交易的数组。”

关于订阅,您不应使用in_app并仅使用latest_receipt_info。

https://forums.developer.apple.com/thread/92200涵盖了像cancellation_date这样的边缘案例,它是一个客户服务提供的取消,就像在这个苹果开发者论坛帖子中看到的那样:https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW4


0
投票

https://www.revenuecat.com/2018/09/24/apple-subscription-notifications-are-almost-useless

上面的文档使用https://forums.developer.apple.com/thread/96670非常清楚。请注意文档中的“未在下面记录的密钥保留供Apple使用,必须由您的应用程序忽略”。因此即使解码的收据有Receipt Fields(Apple Docs),我们也应该忽略它。

但我同意,文档非常缺乏,这让我很紧张。让我知道您在生产中使用iOS 7样式收据验证的体验。

© www.soinside.com 2019 - 2024. All rights reserved.