2013-01-19 161 views
1

基本上我試圖讓應用內購買工作,但沒有運氣。這裏是我的代碼用於請求產品的購買iOS應用內購買不起作用

- (void)requestProductData 
{ 
    NSSet *productIdentifiers=[NSSetsetWithObject:productid]; 
    request5= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject: productIdentifiers]]; 
    request5.delegate = self; 
    [request5 start]; 
} 

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 
{ 
    myProducts = response.products; 
    for (NSString *invalidProductId in response.invalidProductIdentifiers) 
    { 
     NSLog(@"Invalid product id: %@" , invalidProductId); 
    } 
    SKProduct *selectedProduct = [myProducts objectAtIndex:0]; 
    SKPayment *payment = [SKPayment paymentWithProduct:selectedProduct]; 
    [[SKPaymentQueue defaultQueue] addPayment:payment]; 
} 

奇怪的是,無論response.products和response.invalidProductId在them.I've 0對象已經嘗試等確認供應配置文件中,APPID的事情,包ID等。此外,自從我在iTunes連接中添加應用程序內購買以來,已經過去了將近24小時。誰能幫我?

+0

您是否在iTunes Connect上設置了測試帳戶?您是否使用此測試帳戶登錄商店,而不是真實的iTunes帳戶? – rmaddy

+0

我確實創建了一個測試帳戶,然後我退出了我的iTunes帳戶,但正如此鏈接所述,您無需登錄測試帳戶http://developer.apple.com/library/mac/#documentation/ NetworkingInternet/Conceptual/StoreKitGuide/DevelopingwithStoreKit/DevelopingwithStoreKit.html – vicciu

+0

好點。只有在進行實際購買時才需要測試帳戶,而不僅僅是列出產品。抱歉。 – rmaddy

回答

0

檢查提出請求的代碼。您有:

NSSet *productIdentifiers = [NSSet setWithObject:productid]; 
request5 = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject: productIdentifiers]]; 

它應該是:

NSSet *productIdentifiers = [NSSet setWithObject:productid]; 
request5 = [[SKProductsRequest alloc] initWithProductIdentifiers: productIdentifiers]; 

您正在創建一組與一個對象 - 另一組的產品ID。

+0

非常感謝你rmaddy。我只是不能相信我失去了一天,這個錯誤:) – vicciu