我已經創建了一個使用應用內購買的應用。 Transtactions成功完成,而我的測試用戶帳戶的測試,但是當我在沙箱中驗證是否收到我得到了一個錯誤:網址: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];
}
}
我得到了響應:
URL數據:{「狀態「:21002,」exception「:」java.lang.NullPointerException「}
設備驗證如何無效?通過Apple驗證蘋果服務器或您自己的服務器進行驗證有什麼區別?它仍然是從應用程序完成。 – 2012-07-14 21:12:20
正是因爲這個原因:http://www.tuaw.com/2012/07/13/russian-hacker-circumvents-ios-in-app-purchases/ 在這種情況下,黑客已經重定向了來自Apple's服務器到他們自己的設備。所以他們也可以提供假收據。但是,如果您在自己的服務器上驗證收據,黑客無法重定向或更改您的服務器配置,因此您知道您(很可能)確實獲得了Apple的服務器並可以信任收據驗證。 – 2012-07-17 21:44:04
請確保您發送加密簽名的Yes或No,否則黑客也可以將設備重定向到遠離服務器的位置。 – 2012-07-17 21:47:31