Apple のサンドボックス サーバーで更新不可のサブスクリプションを確認しようとしていますが、何度も戻ってきますverify response: { "status":21002 }
。これは、リクエストの形式が正しくないことを意味します。私が使用している関連コードは次のとおりです。
NSString *receiptString = [[NSString alloc] initWithData:transactionReceipt
encoding:NSUTF8StringEncoding];
NSString *encodedString = [receiptString base64Encoding];
NSString *jsonString = [NSString stringWithFormat:@"{ 'receipt-data' : '%@' }", encodedString];
NSURL *verificationURL = [NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"];
__block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:verificationURL];
[request appendPostData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
[request setRequestMethod:@"POST"];
[request setCompletionBlock:^{
NSString *responseString = [request responseString];
NSLog(@"verify response: %@", responseString);
}];
[request setFailedBlock:^{
NSError *error = [request error];
NSLog(@"verify error: %@", [error description]);
}];
[request startAsynchronous];
どうやら問題は、ASIHTTPRequest ライブラリを介して Apple にデータを送信する方法です。これに関する洞察は大歓迎です。前もって感謝します!