Как проверить, была ли подписка на автообновление сделана IOS - PullRequest
0 голосов
/ 03 марта 2019

Я разрабатываю мультиплатформенное приложение, и я впервые использую Apple в подписке на покупку приложения.На данный момент весь процесс подписки в порядке, но я хотел бы добавить функцию проверки, когда приложение открыто.Если обновление было выполнено, Дата Firebase будет обновлена ​​до новой даты окончания, чтобы позволить другой платформе сделать это сейчас.

У меня есть функция:

func userPrivilegeAllowed(){



    if let user = Auth.auth().currentUser{
        // user is connect
        let ref = Database.database().reference()
        let userID = Auth.auth().currentUser?.uid

        ref.child("User_Subscribtion").child(userID!).observeSingleEvent(of: .value) {(snapshot) in
            let value = snapshot.value as? NSDictionary

            let expStringDate = value?["Expiry_Date"] as? String ?? "01/01/01"

            self.dateFormatter.dateStyle = DateFormatter.Style.short
            self.dateFormatter.dateFormat = "dd/MM/yy"
            let expiryDate = self.dateFormatter.date(from: expStringDate) ?? self.dateFormatter.date(from: "01/01/1990")

            self.today.dateStyle = DateFormatter.Style.short
            self.today.dateFormat = "dd/MM/yy"

            var dayBeforeExpiry = Calendar.current.dateComponents([.month, .day, .year], from: self.curentDate, to: expiryDate!)

            if dayBeforeExpiry.year! == 0 && dayBeforeExpiry.month! == 0 && dayBeforeExpiry.day! <= 0{

                self.StartBtn.isHidden = true
                self.StopBtn.isHidden = true
                self.unpaidBtn.isHidden = false

            } else if dayBeforeExpiry.year! == 0 && dayBeforeExpiry.month! == 0 && dayBeforeExpiry.day! <= 7{
                self.unpaidBtn.isHidden = true
                self.WarningSubscription.isHidden = false
            } else if dayBeforeExpiry.year! == 0 && dayBeforeExpiry.month! == 0 && dayBeforeExpiry.day! == 1{
                //Add Check if Apple payement is OK or Not !

            }

        }

    }
}

Как я могу получить новую дату окончания, чтобы обновлять или нет базу данных и разрешать или нет пользователю использовать приложение?

У меня уже есть информация по этому вопросу в интернете, но я не очень знаком с разработкой IOS и мне нужна дополнительная помощь ...

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 04 марта 2019

Чтобы поддерживать статус подписки пользователя в актуальном состоянии, вам необходимо хранить квитанцию ​​о покупке на вашем сервере и периодически обновлять ее в Apple, чтобы получить последнюю дату истечения срока действия из файла квитанции.Вы можете просто выполнить обновление по мере приближения периода продления или чаще, чтобы получить отмены / возвраты.

С помощью предоставленного вами кода пользователь может изменить системное время на своем телефоне и получить доступ к вашей подписке навсегда.Вам следует проверить дату по времени на вашем сервере.

Вот хороший пост в блоге, который более подробно объясняет сторону сервера: Подписки iOS жесткие .Вы также можете проверить их службу , которая управляет всем этим для вас.(Отказ от ответственности: я там работаю)

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