【问题标题】:How to verify that apple subscription offer is redeemed successfully for users with active subscription如何验证 Apple 订阅优惠是否已成功兑换给活跃订阅的用户
【发布时间】:2019-04-22 21:47:06
【问题描述】:

我们正在我们的应用程序中实现subscription offers,一切进展顺利。但是,如果用户在兑换优惠时拥有有效订阅,我们会从支付队列中获得失败的交易,尽管系统弹出窗口显示“您已准备就绪”。

我不知道它是否记录在任何地方,但我认为在这种情况下失败的交易表明该用户没有被收费。然而,这令人困惑——毕竟我们怎么知道用户是否成功兑换了优惠?

更重要的是,失败事务的错误属性,即expected,用于“确定发生了什么”实际上是nil。我想将没有错误视为间接证据,即交易实际上是成功的,但我还没有看到任何支持这一假设的文件。

我知道订阅优惠是最近才推出的,但也许我们在这里遗漏了什么?

更新:看起来transaction.errortransaction.payment.paymentDiscount 在 mac 上是 nil,但在现有订阅者的 iPad 上(对于相同的测试帐户)存在,尽管错误消息在后一种情况:

错误域=SKErrorDomain 代码=0“无法连接到 iTunes Store” UserInfo={NSLocalizedDescription=无法连接到 iTunes Store}

【问题讨论】:

  • 这是否发生在沙盒中?
  • 是的,我们正在沙盒中进行测试。
  • 始终建议在物理设备上测试StoreKit - 沙盒充满了怪癖和限制。你能在物理设备上确认相同的行为吗?
  • 是的,我们一直在真实设备上进行测试。
  • @mikejd 我们一直在 RevenueCat 进行测试,并且在使用优惠重新订阅产品时看到了相同的行为:显示“您已准备就绪”但返回错误。

标签: in-app-purchase storekit


【解决方案1】:

所以这只是沙盒的一个怪癖。活跃订阅的跨级从未在 Sandbox 上正常工作,而且他们实际上仍然没有提供优惠。虽然,它们在生产中运行良好。

但是,您应该仍然能够测试已过期订阅的优惠。因此,一旦帐户在该产品中完成了一个周期,它应该可以工作。

您可能想查看this 博客文章。

如何向用户收费取决于一系列因素。

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 2021-02-18
    • 2020-07-25
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多