Каков формат поля cancel_date в квитанциях/уведомлениях о статусе Apple IAP?

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

Я бы предположил, что это миллисекунды с начала эпохи, но там, где другие поля отмечены в документации как таковые, поле cancel_date просто читает: «Время и дата отмены транзакции службой поддержки Apple».

Кто-нибудь может подтвердить формат даты в поле Cancel_date?


person jmichas    schedule 25.10.2017    source источник


Ответы (1)


Я нашел это сегодня:

если статус квитанции 21006 и есть ключ с именем cancel_date, то это аннулирование, вы можете найти новую дату истечения срока действия в этом ключе, но это отформатированная дата, если вам нужно лучшее значение для анализа, проверьте получение ['latest_expired_receipt_info' ]['cancellation_date_ms'] то же, что и expires_date

Уведомление об отмене автоматического продления для -покупка приложения

Я также подтвердил это в производстве. Есть свойство cancellation_date_ms для latest_expired_receipt_info, а также в корне самого уведомления. cancellation_date — форматированная строка даты.

Вот частичное производственное уведомление:

{ "environment": "PROD", "auto_renew_status": "false", "latest_expired_receipt_info": { "original_purchase_date_pst": "2018-01-25 11:59:25 America/Los_Angeles", "cancellation_date_ms": "1517150504000", "cancellation_reason": "0", "original_purchase_date_ms": "1516910365000", "expires_date_formatted": "2019-01-25 19:59:23 Etc/GMT", "is_in_intro_offer_period": "false", "purchase_date_ms": "1516910363000", "expires_date_formatted_pst": "2019-01-25 11:59:23 America/Los_Angeles", "is_trial_period": "false", "expires_date": "1548446363000", "cancellation_date": "2018-01-28 14:41:44 Etc/GMT", "purchase_date": "2018-01-25 19:59:23 Etc/GMT", "cancellation_date_pst": "2018-01-28 06:41:44 America/Los_Angeles", "purchase_date_pst": "2018-01-25 11:59:23 America/Los_Angeles", "original_purchase_date": "2018-01-25 19:59:25 Etc/GMT" }, "cancellation_date_ms": "1517150504000" }

person siburb    schedule 29.01.2018
comment
Спасибо. Я еще не нашел ответа на этот вопрос и еще не смог зафиксировать его в реальном мире. Это кажется хорошей информацией, и мне придется проверить свой код, чтобы увидеть, обрабатываю ли я вещи, как вы описали. - person jmichas; 29.01.2018
comment
Я настроил наш сервер и теперь правильно получил уведомление ОТМЕНА. Смотрите обновленный ответ. - person siburb; 29.01.2018
comment
по какой причине auto_renew_status находится за пределами вашей последней информации? в документе говорится, что это поле должно быть внутри информации о квитанции. - person kevinl; 20.08.2018
comment
Согласно документации Apple для разработчиков: значение статуса равно 0, если квитанция действительна, или код состояния, если есть ошибка. Код состояния отражает состояние квитанции приложения в целом. Например, если вы отправляете действительную квитанцию ​​приложения, содержащую подписку с истекшим сроком действия, ответ будет равен 0, поскольку квитанция действительна. - person Gürol Canbek; 15.06.2020