MKstorekit4.1を使用して自動更新可能なサブスクリプションを使用しているiPhoneアプリケーションがあります。これは正常に実装され、サーバーの応答を受け取ります。実際、このサブスクリプションを1か月間アクティブに使用したいと思います。config.plistに30として値を付けていますが、テストしているときは、同じ日にもう一度購入する必要がありますか?その購入を30日間有効にする必要があります。MKstorekitは、次のコードですでに処理していると言っています。それでは、なぜこのシナリオを使用するのですか。
-(BOOL) isSubscriptionActive
{
if([[self.verifiedReceiptDictionary objectForKey:@"receipt"] objectForKey:@"expires_date"]){
NSLog(@"%@",self.verifiedReceiptDictionary);
NSTimeInterval expiresDate = [[[self.verifiedReceiptDictionary objectForKey:@"receipt"] objectForKey:@"expires_date"] doubleValue]/1000.0;
NSLog(@"%f",expiresDate);
NSLog(@"%f",[[NSDate date] timeIntervalSince1970]);
return expiresDate > [[NSDate date] timeIntervalSince1970];
}else{
NSString *purchasedDateString = [[self.verifiedReceiptDictionary objectForKey:@"receipt"] objectForKey:@"purchase_date"];
if(!purchasedDateString) {
NSLog(@"Receipt Dictionary from Apple Server is invalid: %@", verifiedReceiptDictionary);
return NO;
}
NSLog(@"%@",purchasedDateString);
NSDateFormatter *df = [[NSDateFormatter alloc] init];
//2011-07-03 05:31:55 Etc/GMT
purchasedDateString = [purchasedDateString stringByReplacingOccurrencesOfString:@" Etc/GMT" withString:@""];
NSLocale *POSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[df setLocale:POSIXLocale];
[df setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *purchasedDate = [df dateFromString: purchasedDateString];
int numberOfDays = [purchasedDate timeIntervalSinceNow] / (-86400.0);
NSLog(@"%@",purchasedDate);
NSLog(@"%@",numberOfDays);
return (self.subscriptionDays > numberOfDays);
}
}
誰か助けてもらえますか?