Первый ежемесячный пакет, вероятно, лучше, чем за l oop, так как вы не хотите, чтобы когда-либо инициировали два звонка на покупку одним нажатием кнопки.
@IBAction func btnMnthlyPressed(_ sender: Any) {
Purchases.shared.offerings { (offerings, error) in
if let e = error {
print(e.localizedDescription)
}
guard let offering = offerings?.current else {
print("No current offering configured")
return
}
guard let package = offering.availablePackages.first(where: { $0.packageType == .monthly }) else {
print("No monthly package type")
return
}
Purchases.shared.purchasePackage(package) { (transaction, info, error, cancelled) in
if cancelled {
print("User cancelled purchase")
return
}
// Optionally handle specific purchase errors
if info?.entitlements.all["FullAccess"]?.isActive == true {
print("Unlocked Pro Cats ?")
}
}
}
}
Тем не менее, вы можете хотите получить все пакеты при загрузке представления, чтобы убедиться, что они существуют, прежде чем пользователь попытается нажать кнопку покупки.