アプリ内購入を使用するアプリを作成しました。私のテストユーザーアカウントでのテスト中Transtactionsが正常に完了しているが、私はサンドボックス内で領収書を確認するとき、私はエラーを得た:URL:アプリ内購入確認確認エラー
URLデータ:https://sandbox.itunes.apple.com/verifyReceipt
- (void)recordTransaction:(SKPaymentTransaction *)transaction { [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; if ([transaction.payment.productIdentifier isEqualToString:@"com.udayKalangi.hansiMazak.hindijokes1"]) { [[NSUserDefaults standardUserDefaults] setValue:transaction.transactionReceipt forKey:@"proUpgradeTransactionReceipt" ]; [[NSUserDefaults standardUserDefaults] synchronize]; NSData *receiptData = [NSData dataWithData:transaction.transactionReceipt]; NSString *recieptString = [self base64forData:receiptData]; NSLog(@"JSON Created"); urlData = [[NSMutableData data] retain]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:[recieptString dataUsingEncoding:NSUTF8StringEncoding]]; NSLog(@"will create connection"); [[NSURLConnection alloc] initWithRequest:request delegate:self]; } }
は、私が応答を得た{ "のステータスを":21002、" exception ":" java.lang.NullPointerException "}
デバイスの確認はどのように役立ちませんか?アップルとの検証の違いは何ですか?それはまだアプリからやっている。 –
まさにこの理由のためです:http://www.tuaw.com/2012/07/13/russian-hacker-circumvents-ios-in-app-purchases/ この場合、ハッカーはAppleの要求をリダイレクトしましたサーバーをデバイスから独自のものにします。したがって、彼らは偽の領収書を提供することもできます。しかし、あなた自身のサーバーで領収書を確認すると、ハッカーはサーバーの設定をリダイレクトまたは変更できないため、実際にアップルのサーバーを取得しており、領収書の検証を信頼することができます。 –
暗号で署名された「はい」または「いいえ」をアプリにも必ず送ってください。そうでないと、ハッカーはデバイスをサーバーからリダイレクトできます。 –