StoreKit-как получить правильный срок годности?
Я получил StoreKit для работы с автоматически возобновляемыми подписками и могу успешно покупать и продлевать подписки через песочницу. Пока все идет хорошо.
Проблема, с которой я сталкиваюсь, заключается в том, что срок годности, возвращаемый apple, кажется правильным.
При первой покупке подписки она дает вам ответ receipt
. В этом ответе он дает вам expires_date_formatted
, это получается путем запроса части ответа receipt
или latest_receipt_info
от apple.
Когда срок действия подписки истек, вы получите ответ latest_expired_receipt_info
(это не появляется в обычных покупках и только тогда, когда срок действия квитанции истек).
latest_expired_receipt_info
внутри expires_date_formatted
хранится другая дата, и это вызывает у меня всевозможные головные боли.
Обычно мое приложение сообщает, что срок действия подписки истек, но когда вы пытаетесь выкупить подписку, оно сообщает, что подписка все еще активна.
Это, по-видимому, означает, что дата внутри latest_expired_receipt_info
является точным, но, по-видимому, нет способа получить эту дату (если вы намеренно не даете подписке истечь).
Примеры:
receipt (stored) = {
bid = "myappid.goeshere";
bvrs = "1.0";
"expires_date" = 1321365095905;
"expires_date_formatted" = "2011-11-15 13:51:35 Etc/GMT";
...other stuff....
}
latest_expired_receipt_info = {
bid = "myappid.goeshere";
bvrs = "1.0";
"expires_date" = 1321366860000;
"expires_date_formatted" = "2011-11-15 14:21:00 Etc/GMT";
...other stuff...
}
В приведенном выше примере мы можем видеть, что expires_date_formatted
совершенно разные, один говорит 13: 51, другой говорит 14: 21
В других тестах разница может составлять от нескольких минут до десяти-двадцати минут.
Как мне получить правильный expires_date_formatted
?