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


  确定资格
  
  确定用户是否有资格获得
  介绍价,请检查其收据:
  在App Store验证收据中进行了介绍。在收据中,
  检查“订阅试用期”和“订阅”的值
  所有应用内购买交易的介绍性价格期限。如果
  这些字段中的任何一个对于给定的订阅都是正确的,用户是
  不符合该订阅产品的介绍价的资格,或
  同一订阅组中的任何其他产品。你通常
  从您的服务器检查用户的资格。最好确定
  提早获得资格-例如,在应用程序首次启动时,如果
  可能。
  
  根据收据,您会发现新客户和回头客
  有资格获得介绍价或免费试用折扣,因为
  遵循:新订户始终有资格。订阅者人数减少
  如果他们以前没有收到过介绍,则有资格续订
  给定产品(或同一产品中的任何产品)的价格
  订阅组)。


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

P.s. JSON的状态始终为0,因此与服务器的通信良好。

编辑:如果缺少密钥,我不能只是假定该试用版不可用,因为我已经测试了没有密钥的情况,但是订阅后会提供一个试用版。

最佳答案

没有购买自动续订订阅的收据,缺少latest_receipt_info键。


  我不能仅仅假设没有密钥就无法进行试用,
  因为我已经测试了没有钥匙的情况,但是我
  订阅后提供了试用。


这是在沙盒中吗?我认为在生产中不可能做到这一点。

Apple会自动管理介绍资格,而无需做任何事情就可以使某人获得或不介绍介绍。本文档仅供您更新所需的任何UI组件-但我从未听说过某个应用程序因未在UI中反映出入门资格而遭到拒绝。

关于swift - 使用受信任的服务器进行IAP接收验证。如果返回的JSON不包含“latest_receipt_info” key ,如何确定试用资格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54876072/

10-10 17:10