如何验证具有有效订阅的用户已成功兑换Apple订阅优惠

时间:2019-04-22 21:47:06

标签: in-app-purchase storekit

我们正在应用程序中实现subscription offers,一切进展顺利。但是,如果用户在兑换优惠时拥有有效的订阅,尽管系统弹出窗口指出“您已全部设置”,但我们仍会从付款队列中获取失败的交易。

我不知道是否在任何地方进行了记录,但是我认为在这种情况下失败的交易表明未向用户收费。但是,这是造成混乱的根源-我们到底怎么知道用户是否成功兑换了优惠?

此外,失败的事务的错误属性expected实际上是“无”,它被用来“确定发生了什么”。我想将没有错误作为间接证据,表明该交易实际上是成功的,但我还没有看到任何文档可以支持这一假设。

我意识到订阅优惠是最近才推出的,但是也许我们在这里缺少什么?

更新:在Mac上,transaction.errortransaction.payment.paymentDiscount似乎为 nil ,但在iPad(针对相同的测试帐户)上针对现有订阅者显示,尽管错误消息在后一种情况下仍然模糊:

  

Error Domain = SKErrorDomain代码= 0“无法连接到iTunes Store”   UserInfo = {NSLocalizedDescription =无法连接到iTunes Store}

1 个答案:

答案 0 :(得分:1)

因此,这只是一个沙盒怪癖。有效订阅的跨等级在Sandbox上从未正常运行,实际上它们仍未提供优惠。虽然,他们在生产上工作正常。

但是,您仍然可以通过过期的订阅测试优惠。因此,一旦帐户在该产品中完成了一个周期,就应该可以使用。

您可能要查看有关此的this博客文章。

如何向用户收费取决于许多因素。