我使用 Revenucat 来管理订阅。提供免费试用期,为了确定用户的资格,我使用 Revenuecat 提供的以下代码,并使用 SandBox 测试代码(测试飞行返回相同的问题。)
Purchases.shared.getOfferings { offerings, error in
if let product = offerings?.current?.availablePackages.first?.storeProduct {
Purchases.shared.checkTrialOrIntroDiscountEligibility(product: product) { eligibility in
if eligibility == .eligible {
self.freeTrialElgibility = true
} else {
self.freeTrialElgibility = false
}
}
}
}
但它返回以下错误消息:
🍎‼️ 应用程序在沙箱上运行,没有收据文件。除非您之前购买过并且有收据,否则无法确定您是否符合资格。
除此之外,如何检测用户是否正在使用免费试用订阅?我尝试过这个块:
Purchases.shared.getCustomerInfo { (customerInfo, error) in
self.isSubcriptionActive = customerInfo?.entitlements.all["All Access"]?.isActive == true
self.isTrialPeriod = customerInfo?.entitlements.all["All Access"]?.periodType.rawValue == 0
}
但是 isTrialPeriod 仍然为 false。我想我不明白“periodType”的含义。
如果有人可以帮助我,那就太好了。
提前非常感谢。
让-弗朗索瓦
如果我尝试恢复订阅,它成功了,检测到免费试用期资格。
但是不推荐这种方法(出现登录提示),我按照 RevenueCat 的推荐使用了
syncPurchases
,同样的错误信息。
我在 Stackoverflow 上读到一种方法是计算收据数量。如果收据数量为0,我们可以认为资格是真实的。如何通过 RevenueCat 获得这个数量的收据?