StoreKit - Как получить правильную дату истечения срока действия? - PullRequest
3 голосов
/ 15 ноября 2011

У меня есть 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?

1 Ответ

3 голосов
/ 19 декабря 2011

Вы тестируете в режиме песочницы, а не в рабочем режиме.

В этом случае подписки значительно короче: срок подписки на 7 дней составляет всего 5 минут, а срок годовой подписки истекает через час.

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