Как получить правильную первоначальную покупку и дату истечения срока действия в IAP Swift - PullRequest
0 голосов
/ 06 февраля 2019

В настоящее время я проверяю покупки в приложении в песочнице, чтобы узнать, активна ли пользовательская подписка в настоящее время или истекла.Я только что подписался на один месяц, и в квитанции говорится, что срок действия подписки истек.OrginalPurchaseDate и ExpiryDate оба выглядят неправильно.Как я могу определить, какие даты в JSON вернулись, являются правильными.Я сравниваю expiryDate с первоначальной датой покупки, чтобы определить, активна ли подписка.

func checkIfSubscriptionIsActive() {
    IAPManager.shared.validatePurchaseReceipt { (pReceipt) in
        self.receipt = pReceipt
        let expiryDate = self.receipt.last.map { $0.expiresDate}!.skTodate
        let originalPurchaseDate = self.receipt.last.map { $0.originalPurhaseDate}!.skTodate
        print("Latest Receipt: \(self.receipt.last)")
        if expiryDate?.compare(originalPurchaseDate!) == .orderedDescending {
            print("Subscription is expired")
        } else {
            print("Subscription is still active")
        }
    }
}

Вот мои журналы

Последняя квитанция: необязательно (Vinylly.IAPReceiptInfo (количество: «1», tansactionID: «1000000500500768», productID: «com.myApp.skLLC.autoRenewableSubscription ", originalPurhaseDate:" 2019-01-17 11:50:53 Etc / GMT ", isTrialPeriod:" false ", webOrderLineItem:" 1000000042609588 ", expiresDate:" 2019-02-06 15:55:21Etc / GMT "))

1 Ответ

0 голосов
/ 06 февраля 2019

за документацию apple, срок действия подписки на один месяц истекает через 5 минут при тестировании в среде песочницыесли вы хотите написать / протестировать некоторый код, попробуйте сделать это в течение 5 минут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...