私は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 hereは次のように述べています。
レシートデータはファイルの中身全部だと勘違いしていませんか?または私のコードに何か問題がありますか?