【发布时间】:2019-04-22 21:47:06
【问题描述】:
我们正在我们的应用程序中实现subscription offers,一切进展顺利。但是,如果用户在兑换优惠时拥有有效订阅,我们会从支付队列中获得失败的交易,尽管系统弹出窗口显示“您已准备就绪”。
我不知道它是否记录在任何地方,但我认为在这种情况下失败的交易表明该用户没有被收费。然而,这令人困惑——毕竟我们怎么知道用户是否成功兑换了优惠?
更重要的是,失败事务的错误属性,即expected,用于“确定发生了什么”实际上是nil。我想将没有错误视为间接证据,即交易实际上是成功的,但我还没有看到任何支持这一假设的文件。
我知道订阅优惠是最近才推出的,但也许我们在这里遗漏了什么?
更新:看起来transaction.error 和 transaction.payment.paymentDiscount 在 mac 上是 nil,但在现有订阅者的 iPad 上(对于相同的测试帐户)存在,尽管错误消息在后一种情况:
错误域=SKErrorDomain 代码=0“无法连接到 iTunes Store” UserInfo={NSLocalizedDescription=无法连接到 iTunes Store}
【问题讨论】:
-
这是否发生在沙盒中?
-
是的,我们正在沙盒中进行测试。
-
始终建议在物理设备上测试
StoreKit- 沙盒充满了怪癖和限制。你能在物理设备上确认相同的行为吗? -
是的,我们一直在真实设备上进行测试。
-
@mikejd 我们一直在 RevenueCat 进行测试,并且在使用优惠重新订阅产品时看到了相同的行为:显示“您已准备就绪”但返回错误。