Как правильно обрабатывать автоматическое продление с помощью StoreKit 2?IOS

Программируем под IOS
Ответить
Anonymous
 Как правильно обрабатывать автоматическое продление с помощью StoreKit 2?

Сообщение Anonymous »


Недавно я перешел на StoreKit 2, чтобы управлять активной подпиской в ​​моем приложении. Но есть один аспект, в котором я не совсем уверен. Документация о дате отзыва и дате истечения срока действия мне неясна.
[*]
Если пользователь отменяет автопродление во время 7-дневной пробной версии, будет ли дата отзыва отличной от нуля?
[*]
Содержит ли Transaction.currentEntitlements только активный в данный момент продукт? Я предполагаю, что мне не нужно проверять, истек ли срок действия expirationDate, если это так.
[*]
Рекомендуется ли выполнять этот код в MainThread?

Вот полный метод:
@MainActor func syncActiveAppleProduct() асинхронный { LoggerManager.shared.warning("[Извлечь текущие права]") var activeSubscriptions: [Продукт] = [] для ожидания результата в Transaction.currentEntitlements { делать { пусть транзакция = попробуйте checkVerified (результат) охранная подписка: Product = subscribes.first(where: { $0.id == транзакции.productID }) else { продолжать } переключить транзакцию.productType { случай .autoRenewable: охранная транзакция.revocacyDate == ноль еще {продолжить} если let expirationDate = транзакции.expirationDate { KeychainHelper.Subscription.setExpiryOrCancelledDate(expirationDate) } activeSubscriptions.append(подписка) случай .consumable, .nonConsumable, .nonRenewable: Guard let expirationDate = getNonRenewingExpirationDate (forProductId: транзакции.productID, PurchaseDate: транзакции.purchaseDate) еще {продолжить} если Дата()
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»