恢复应用内购买时检测订阅详细信息
Posted
技术标签:
【中文标题】恢复应用内购买时检测订阅详细信息【英文标题】:Detecting subscription details when restoring in-app purchase 【发布时间】:2021-12-21 03:25:00 【问题描述】:通常我会整理和调查我的编码问题,但是,这个问题让我很困惑,我花了一天时间浏览 ***、github、youtube、apple 开发人员文档,但无济于事。
我在 xcode v13、ios 13 中编写了一个应用程序,该应用程序具有应用内购买功能。对于应用内购买,我有 2 个自动续订订阅,一个用于每月订阅,另一个用于年度订阅。我正在测试可以正常工作的恢复过程。我使用了标准的苹果代码。但是,我要做的是建立/检测正在恢复的服务,即。假设用户注册了年度订阅,那么当应用内恢复完成后,我试图检测用户恢复是针对年度订阅而不是每月订阅。
正如我所说,我很挣扎,尝试了很多很多事情,但无济于事。有没有其他人这样做过,如果有的话,你能指点一下你是如何做到的吗?
如果您以前这样做过,请提前感谢大家的指导......
【问题讨论】:
【参考方案1】:好的,所以在花了一天时间浏览许多来源但一无所获之后,我偶然发现了 2015 年的一个小块,它已经解决了这个问题。回顾一下——我想做的是确定客户之前购买的“哪个”应用内购买订阅正在恢复,以便我可以调整场景/用户界面以反映之前进行的应用内购买。为此,我需要找到一种方法来确定应用内购买标识符。说了这么多,要插入的神奇 [var identifier....] 代码如下所示,并进入您检测 SKPaymentQueue .restored 条件的代码部分:
案例.restored:
var identifier : NSString = transaction.payment.productIdentifier as NSString
print("Restore identifier is \(identifier)")
UserDefaults.standard.set(true, forKey: myProductID)
SKPaymentQueue.default().finishTransaction(transaction)
【讨论】:
以上是关于恢复应用内购买时检测订阅详细信息的主要内容,如果未能解决你的问题,请参考以下文章