Code 21002
はJSON
、あなたの共有秘密を持っており、あなたのレシートデータが「misformed」かいない形式のリンゴがそれを望んでいるリンゴに送信していることを意味します。
またレシートから文字'\n'
と'\r'
を削除し、サーバーに送信する前に、'%2B'
で'+'
を交換してみてください。このような何か:
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
NSString *receiptDataString = [receipt base64EncodedStringWithOptions:0];
receiptDataString=[receiptDataString stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];
receiptDataString=[receiptDataString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
receiptDataString=[receiptDataString stringByReplacingOccurrencesOfString:@"\r" withString:@""];
NSString *postDataString = [NSString stringWithFormat:@"receipt-data=%@", receiptDataString];
NSString *length = [NSString stringWithFormat:@"%lu", (unsigned long)[postDataString length]];
[request setValue:length forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:[postDataString dataUsingEncoding:NSASCIIStringEncoding]];
Reference
は、これはあなたが何らかの形であなたがその場合
にキーを渡していないあなたは、サンドボックスモードでの領収書をチェックしている、コード内の論理エラーを持っていることを意味します?。 –
はい、私はサンドボックスでテストしています – naresh