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?

1 3

1 ответ:

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

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