Поле «expires_date» берется из данных json квитанции App Store. .
например:
Код: Выделить всё
[{
"quantity": "1",
"product_id": "test2",
"transaction_id": "1000000472106082",
"original_transaction_id": "1000000472106082",
"purchase_date": "2018-11-13 16:46:31 Etc/GMT",
"purchase_date_ms": "1542127591000",
"purchase_date_pst": "2018-11-13 08:46:31 America/Los_Angeles",
"original_purchase_date": "2018-11-13 16:46:31 Etc/GMT",
"original_purchase_date_ms": "1542127591000",
"original_purchase_date_pst": "2018-11-13 08:46:31 America/Los_Angeles",
"is_trial_period": "false",
"expires_date" : "2023-05-24 18:01:31 Etc/GMT"
}]
Код: Выделить всё
@"yyyy-MM-dd HH:mm:ss VV"Код: Выделить всё
2023-05-24 18:01:31 Etc/GMTНа сайте разработчика Apple нет информации относительно правильный формат. Существует устаревший документ, в котором указан формат даты RFC3339. Однако это неверно. Это также не формат ISO8601.
Кстати, вот код, который я использую.
Код: Выделить всё
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss VV";
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDate* expireDate = [formatter dateFromString:expireDate];
Код: Выделить всё
NSDate* nowDate = [NSDate date];
if(([nowDate compare:expireDate] == NSOrderedDescending) ||
([nowDate compare:bufferDate] == NSOrderedSame))
{
//the subscription has expired
retVal = true;
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... pires-date
Мобильная версия