首页 文章

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

提问于
浏览
3

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

3 回答

  • 2

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

    • 当用户点击购买时,开始免费试用 . 用户目前不收费 . 发送到服务器进行验证的收据将具有:
    expires_date_ms - purchase_date_ms = Number of Free trial days.
    
    • 当免费试用日期结束且用户未从“管理”订阅屏幕关闭自动续订时,将发出另一个收据,这次是用户收费 . 签发的收据将有
    expires_date_ms - purchase_date_ms = Term Length
    

    如果用户在免费试用期满之前已关闭自动续订,则服务器应检测到此情况并关闭用户的订阅 .

  • 0

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

  • 0

    我在 生产环境 帐户中进行了试用付款并从appstore收到了收据 . 此收据包含 "is_trial_period" 字段"true" . 但在试用期后,我收到真实账单的收据,并没有试用字段 .

    我写的逻辑是:

    • 如果收到验证后收到"is_trial_period"字段,则为真 - 这是试用收据

    • 如果收货字段"original_transaction_id"!= "transaction_id" - 这是真正的账单,我在我自己的数据库中找到原始交易并续订 .

    但是appstore文档没有相同的试验字段信息 . Sandbox不是这个字段 .

相关问题