2012-02-25 45 views
2

我已經創建了一個使用應用內購買的應用。 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「}

回答

0

對不起,但你這樣做是錯誤的。

首先,根據http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html,您需要將base64收據數據設置爲'receipt-data',然後以JSON格式發佈以進行驗證。看起來你沒有這樣做。

但最重要的是,你並不是要驗證設備上的收據,這樣做毫無意義。您的意思是將數據發送到您的服務器,並讓它與您的Apple驗證數據。在設備上進行驗證實際上並未提供任何驗證。驗證收據的目的是爲了確保它沒有被篡改,即如果有人妥協了你的應用並能夠提供被篡改的收據,他們能夠規避驗證該收據。

+0

設備驗證如何無效?通過Apple驗證蘋果服務器或您自己的服務器進行驗證有什麼區別?它仍然是從應用程序完成。 – 2012-07-14 21:12:20

+0

正是因爲這個原因:http://www.tuaw.com/2012/07/13/russian-hacker-circumvents-ios-in-app-purchases/ 在這種情況下,黑客已經重定向了來自Apple's服務器到他們自己的設備。所以他們也可以提供假收據。但是,如果您在自己的服務器上驗證收據,黑客無法重定向或更改您的服務器配置,因此您知道您(很可能)確實獲得了Apple的服務器並可以信任收據驗證。 – 2012-07-17 21:44:04

+0

請確保您發送加密簽名的Yes或No,否則黑客也可以將設備重定向到遠離服務器的位置。 – 2012-07-17 21:47:31

相關問題