Отсутствие получения expiration_date, expiration_date_ms и expiration_date_pst в ответе на проверку квитанции

Я получаю доступ к квитанции после успешной подписки в приложении (проверяя состояние SKPaymentTransactionStatePurchased). После того, как я проверил эту квитанцию, в ответе проверки квитанции expiration_date, expiration_date_ms и expiration_date_pst отсутствуют в квитанции. Это почему?

(В качестве обходного пути я попытался получить последний объект latest_receipt_info и указать дату его истечения. Но эти данные относятся к последней подписке перед текущей. Поэтому я не могу найти там требуемую дату истечения срока.)

Как я могу решить эту проблему и узнать дату истечения срока подписки, купленной только что?


person Kulakshi    schedule 05.11.2020    source источник


Ответы (2)


вы ищете в нужном месте. Вы, вероятно, смотрите не на тот объект в своем индексе, когда произносите последний. Рекомендуется сортировать latest_receipt_info, обычно по дате покупки_ *, чтобы убедиться, что вы можете рассчитывать на объект, на который смотрите.

person Hitch22    schedule 07.12.2020
comment
Ой ну спасибо. Думал уже разобрано. Я попробую это сделать. - person Kulakshi; 07.12.2020

Вам, вероятно, следует проверить это руководство, чтобы узнать, не ошиблись ли вы в структуре квитанции:

https://www.namiml.com/blog/app-store-verify-receipt-definitive-guide

В частности, в разделе квитанции вы получаете массив элементов IAP, каждый из которых содержит такие вещи, как expiration_date.

latest_receipt_info должна иметь текущую подписку, а не старую - вы обрабатываете ответ от Apple json или просто декодируете локальную квитанцию? Запрос в Apple всегда должен возвращать последние данные о покупках.

person Kendall Helmstetter Gelner    schedule 05.03.2021