Я работаю над проверкой покупки в приложении в приложении OSX и получаю некоторые проблемы ~
Мой код запроса выглядит следующим образом:
NSData* data = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]];
NSString* base64Str = [data base64EncodedString];
NSDictionary* dict = [NSDictionary dictionaryWithObject:base64Str forKey:@"receipt-data"];
SBJSON *jsonParser = [[[SBJSON alloc] init] autorelease];
NSString* jsonStr = [jsonParser stringWithObject:dict error:nil];
postUrl = [NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"];
_verifyRequest = [[NSMutableURLRequest alloc] init];
[_verifyRequest setTimeoutInterval:_sTimeoutInterval];
[_verifyRequest setURL:postUrl];
[_verifyRequest setHTTPBody:[jsonStr dataUsingEncoding:NSUTF8StringEncoding]];
[_verifyRequest setHTTPMethod:ASCommon_HttpMethodPost];
_verifyConnection = [[NSURLConnection alloc] initWithRequest:_verifyRequest delegate:self];
[_verifyConnection start];
Я получаю такой результат
{
exception = "java.lang.IllegalArgumentException";
status = 21002;
}
И я регистрирую переменную jsonStr, похоже, нет проблем:
{"receipt-data":"..........................................................."}
Apple doc здесь сказал: «Получите данные квитанции. ...... В OS X это все содержимое файла квитанции внутри пакета приложения. Закодируйте данные квитанции, используя кодировку base64».
Я неправильно понимаю, что данные квитанции - это все содержимое файла? Или что-то не так с моим кодом?