2

私は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は次のように述べています。

レシートデータはファイルの中身全部だと勘違いしていませんか?または私のコードに何か問題がありますか?

4

1 に答える 1