【问题标题】:iOS Restore Purchases in TestFlightTestFlight 中的 iOS 恢复购买
【发布时间】:2017-07-13 11:24:29
【问题描述】:

我有一个移动应用程序,我正在使用 TestFlight 测试 iOS

在我成功进行“非续订订阅”购买后,我希望在致电Restore Purchases 时看到购买历史记录。当我通过 TestFlight 应用进行购买时,我没有看到任何历史购买记录。

问题

这是正常的行为,因为这是一个测试环境,并且购买并不存在吗?或者,我应该期待看到历史性的购买吗?

如果看不到历史购买记录,如何测试Restore Purchases

代码:

  this.iap.restorePurchases().then((purchases: any[]) => {
      // purchases are empty
  });

get Products 确实成功返回了产品。

  this.iap.getProducts(this.PRODUCT_IDS).then((products: any[]) => {
     ...
  });

ps。当我在Android 中运行相同的代码时,restorePurchases 确实会返回历史购买。

【问题讨论】:

    标签: ios angular ionic-framework applet testflight


    【解决方案1】:

    如果您参考表 1-2 和In App Purchase Programming Guide 中的随附文本,您会看到系统不会恢复不可续订的订阅;在您自己的服务器上跟踪用户的订阅状态是您的应用程序的责任。

    • 不可续订的订阅。不涉及提供剧集内容的订阅。示例包括访问历史照片数据库或飞行地图集合。您的应用有责任在用户的所有设备上提供订阅并让用户恢复购买。当您的用户在您的服务器上已经有一个帐户,您可以在恢复内容时使用该帐户来识别他们时,通常会使用此产品类型。订阅的到期和持续时间也留给您的应用(或您的服务器)来实施和执行。

    因此,您不会在恢复的购买中看到非续订订阅,因此您在测试和生产中看到的都是预期的。

    自动续订订阅是可恢复的,因为 Apple 的服务器正在为您跟踪活动订阅。

    【讨论】:

    • 嗨@Paulw11,感谢您的回答。但是,我还有另一个问题。苹果表示,所有购买都需要在用户拥有的所有设备上可用。如果是这样,那么如果您无法获得历史购买,那么如何恢复每个设备上的购买呢? (我在我的服务器上维护我的应用程序帐户的订阅到期日期,但如果用户在他们拥有的另一台设备上使用不同的应用程序帐户登录会发生什么?)
    • 在非续订订阅的情况下,订阅与您服务器上的帐户相关联,而不是与 iTunes 帐户相关联,因此如果他们使用该设备上的相同应用程序帐户。
    • 谢谢。那么这是否意味着restorePurchases 将返回一个结果集,如果我使用同一用户拥有的不同设备?你看到我的问题了吗? Apple 要求将购买恢复到所有拥有的设备,但 restorePurchases 不适用于“非续订订阅”购买。
    • 仅当他们有自动续订订阅或非消耗性购买时。 Apple 永远不会恢复非续订订阅和消耗品购买。
    • @Richard,是的,您绝对应该这样做。我的评论具有误导性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多