私は最初のアプリ内購入のiphoneアプリケーションをテストしようとしていました。残念ながら、私はiTunesサーバーとtalkReceiptを確認する方法を見つけることができません。transactionReceiptでJSONオブジェクトを生成
私はこの技術で私の最初の試みであるため、私はサーバーサポートを使用する代わりにiPhoneから直接領収書を確認することにしました。しかし、GoogleのコードからJSON APIを使用して作成されたJSON onbjectでPOSTリクエストを送信しようとすると、奇妙な応答が返されます(代わりに「status = 0」の文字列が返されます)。ここで
は、私は領収書を確認するために使用したコードです:
- (void)recordTransaction:(SKPaymentTransaction *)transaction {
NSString *receiptStr = [[NSString alloc] initWithData:transaction.transactionReceipt encoding:NSUTF8StringEncoding];
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"algo mas",@"receipt-data",nil];
NSString *jsonString = [jsonDictionary JSONRepresentation];
NSLog(@"string to send: %@",jsonString);
NSLog(@"JSON Created");
urlData = [[NSMutableData data] retain];
//NSURL *sandboxStoreURL = [[NSURL alloc] initWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"will create connection");
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
は、多分私は、リクエストのヘッダーに何かを忘れていたが、私はこの問題は、私はJSONオブジェクトを作成するために使用する方法であると思います。
は、ここではJSONオブジェクトが、私はHTTPBodyに追加する前に、どのように見えるかです:私が持っている
string to send: {"receipt-data":"{\n\t\"signature\" = \"AUYMbhY
...........
D0gIjEuMCI7Cn0=\";\n\t\"pod\" = \"100\";\n\t\"signing-status\" = \"0\";\n}"}
応答:
完全奏効{=「java.langの 例外。 IllegalArgumentException:引用符で囲まれていない文字列を読み込もうとしているときに、プロパティリストの解析が失敗しました行番号:1、列:0. "; ステータス= 21002。 }
ありがとうございます。
「transactionReceipt」は、UTF-8でエンコードされた文字列として解釈されるとは言いません – user102008