使用可信服务器进行IAP收据验证。如果返回的JSON不包含“latest_receipt_info”密钥,如何确定试用资格?

问题描述 投票:0回答:1

我正在开发一个iOS swift应用程序,该应用程序使用In App Purchase进行单次自动续订,具有1周的免费试用期。为了确定试验资格,我正在阅读文档here。它说:

确定资格

要确定用户是否有资格获得介绍价格,请检查他们的收据:验证收据,如使用App Store验证收据中所述。在收据中,检查所有应用内购买交易的订购试用期和订购初始价格期的值。如果给定订阅的这些字段中的任何一个为真,则该用户不符合该订阅产品或同一订阅组内任何其他产品的介绍价格。您通常会从服务器检查用户的资格。最好尽早确定资格 - 例如,在应用程序首次启动时,如果可能的话。

根据收据,您会发现新客户和回头客有资格获得介绍价格或免费试用折扣,如下所示:新订户始终符合条件。如果之前未获得给定产品(或同一订阅组中的任何产品)的介绍价格,则续订的失效订户符合资格。

问题是服务器返回的JSON有时不包含“latest_receipt_info”键,它只包含环境,状态和接收字段。在这种情况下如何确定用户的审判资格?任何帮助是极大的赞赏。

附: JSON始终包含状态0,因此与服务器的通信运行良好。

编辑:如果密钥不存在,我不能仅仅假设试用版不可用,因为我已经测试了没有密钥的情况,但是我在订阅时提供了试用版。

swift cocoa cocoa-touch in-app-purchase
1个回答
0
投票

对于没有自动续订订购的收据,latest_receipt_info密钥将丢失。

我不能仅仅假设如果密钥不存在则无法进行审判,因为我已经测试了没有密钥的情况,但是我在订阅时提供了试用版。

这是沙盒吗?我不认为这在生产中是可能的。

对于什么是值得的,Apple会自动管理入门资格,而且您无需做任何事情就可以让某人获得介绍。本文档仅供您更新所需的任何UI组件 - 但我从未听说过因未在UI中反映入门资格而被拒绝的应用程序。

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