покупка Apple в приложении: последовательность / сортировка данных latest_receipt_info
Я использую автоматическое продление покупки в приложении в одном из своих проектов.
Для проверки срока действия я анализирую квитанцию и сравниваю дату подписки с сегодняшней датой. Для последней подписки я забираю последний объект из ключа latest_receipt_info, но теперь я заметил, что последовательность / сортировка latest_receipt_info обратная в моем ответе на проверку получения, я имею в виду последнюю подписку с индексом 0 (первая и не последняя).
Ключ in_app также возвращает данные таким же образом.
У меня есть пара вопросов, может ли кто-нибудь мне помочь
- кто-нибудь сталкивался с этой проблемой раньше?
- Как правильно проверить дату последней подписки
- ключ latest_receipt также пуст
Я знаю, как иметь собственную сортировку ответов, но ищу правильный подход.
Ниже приведен ответ на мою квитанцию, я включаю только необходимые ключи.
{
"status": 0,
"environment": "Production",
"receipt": {
//other keys/values
"in_app": [
{
"product_id": "MyTestMontlyPlan",
**"expires_date": "2020-06-29 14:47:20 Etc/GMT",**
//other keys/values
},
{
"product_id": "MyTestMontlyPlan",
**"expires_date": "2020-05-29 14:47:20 Etc/GMT",**
//other keys/values
}]},
"latest_receipt_info": [
{
"product_id": "MyTestMontlyPlan",
**"expires_date": "2020-06-29 14:47:20 Etc/GMT",**
},
{
"product_id": "MyTestMontlyPlan",
**"expires_date": "2020-05-29 14:47:20 Etc/GMT",**
}],
"latest_receipt": "...", //idk why it is blank, in sandbox we receive receipt data here
"pending_renewal_info": [
{
"auto_renew_product_id": "MyTestMontlyPlan",
"original_transaction_id": "#############",
"product_id": "MyTestMontlyPlan",
"auto_renew_status": "1"
}]
}
1 ответ
Теперь они отсортированы по pruchase_date_* для безопасности, вы должны отсортировать этот массив самостоятельно, чтобы защитить от любых будущих изменений. Отфильтруйте транзакции, у которых есть предыдущая дата истечения срока действия и которые были обновлены.