如何在Sandbox的应用程序购买中实现和测试iOS上的免费试用版?如何通过Apple收据验证流量和试用信息?

时间:2014-10-16 10:11:55

标签: ios in-app-purchase sandbox trial receipt

我想通过iTunes Connect在App购买应用程序中的1个月AR订阅中创建试用期(1周)。问题是,如何在沙盒中测试它并在Apple收据中获得准确的信息,表明试用期和付费订阅之间的状态不同? 谢谢!

3 个答案:

答案 0 :(得分:2)

对于免费试用的应用内商品,客户端的StoreKit会在in_app部分发出两个iOS7样式收据 -

  1. 当用户点击购买时,开始免费试用。用户目前不收费。发送到服务器进行验证的收据将包含:

      expires_date_ms - purchase_date_ms = Number of Free trial days.
    
  2. 当免费试用日期结束且用户未从“管理”订阅屏幕关闭自动续订时,将发出另一个收据,这次是用户付费。签发的收据将

      expires_date_ms - purchase_date_ms = Term Length
    
  3. 如果用户在免费试用期满前关闭了自动续订,服务器应检测到此情况并关闭用户的订阅。

答案 1 :(得分:0)

首先,您需要创建test user from your iTunes account并为in app purchase注册您的应用。然后,您可以使用该测试用户购买订阅。在这里,苹果提供了一些设施,比如你的1个月订阅将相当于5分钟,3等于约15分钟,依此类推。此外,如果您在应用程序购买中将其用作自动更新,它将续订3到4次,而不是我测试时修复的。

答案 2 :(得分:0)

我在生产帐户中进行了试用付款并从appstore收到了收据。此收据包括字段" is_trial_period" as" true"。但是在试用期结束后,我收到真实账单的收据,并且没有试用字段。

我写的逻辑是:

  • 如果收据有" is_trial_period"验证后的字段是真的 - 它是试用收据
  • 如果收到字段" original_transaction_id" !=" transaction_id" - 这是真正的账单,我在我自己的数据库中找到原始交易并续订。

但是,appstore文档没有相同的试用字段信息。 Sandbox不是这个字段。