2011-12-19 28 views
0

現在、私はアプリ内購入機能に取り組んでいますが、エラーエラードメイン= SKErrorDomainコード= 3「iTunes Storeに接続できません」UserInfo = 0x1aaf40 {NSLocalizedDescription = iTunes Storeに接続できません}

"エラードメイン= SKErrorDomainコード= 3 "は"{iTunes Storeに接続できませんNSLocalizedDescription =}のUserInfo = 0x1aaf40" iTunes Storeに接続できません。ここ

は、ステップです。

1)まず私は1つのアプリケーション "inAppPro" を作成してもらうと、それは)ステータス(下にある:は私が4非消耗品を追加した

enter image description here

2) "アップロードの準備" 。関連する詳細を記入してください。

enter image description here enter image description here

3)私はまた、テストアプリ内購入製品のテストユーザー(サンドボックス)を作成しました。

4)私はinApp Purchaseを有効にしてプロビジョニングプロファイルを作成しました。

5)私もワイルドカードなしのAPP IDを作成しました。

ここに私が現在使っているコードがあります。

- (void)viewDidLoad 
{ 
    Detail1 *observer = [[Detail1 alloc] init]; 

    [[SKPaymentQueue defaultQueue] addTransactionObserver:observer]; 

    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
} 


- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 
{ 

    if ([SKPaymentQueue canMakePayments]) 
    { 
     NSString *product = [NSString stringWithFormat:@"com.companyname.inAppDemo.module%d",ApplicationDelegate.objectID]; 
     NSLog(@"In-App product for request = %@", product); 

     SKPayment *payment = [SKPayment paymentWithProductIdentifier:product]; 
     [[SKPaymentQueue defaultQueue] addPayment:payment]; 


    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"MyApp" message:@"You are not authorized to purchase from AppStore" 
                 delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
     [alert show]; 
     [alert release]; 
    } 
} 
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
{ 
    for (SKPaymentTransaction *transaction in transactions) 
    { 
     switch (transaction.transactionState) 
     { 
      case SKPaymentTransactionStatePurchased: 

       [self completeTransaction:transaction]; 

       break; 

      case SKPaymentTransactionStateFailed: 

       [self failedTransaction:transaction]; 

       break; 

      case SKPaymentTransactionStateRestored: 

       [self restoreTransaction:transaction]; 

      default: 

       break; 
     }   
    } 
} 
- (void) failedTransaction: (SKPaymentTransaction *)transaction 
{ 
    if (transaction.error.code != SKErrorPaymentCancelled)  
    {  
     // Optionally, display an error here. 
     NSLog(@"%@",transaction.error); 

    } 
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
} 

- (void) completeTransaction: (SKPaymentTransaction *)transaction 
{  
    //[[MKStoreManager sharedManager] provideContent: transaction.payment.productIdentifier]; 
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
} 

- (void) restoreTransaction: (SKPaymentTransaction *)transaction 
{ 
    //[[MKStoreManager sharedManager] provideContent: transaction.originalTransaction.payment.productIdentifier]; 
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
} 
-(IBAction)btnpurchase:(id)sender 
{ 
    NSLog(@"ProductStatus = %@", ApplicationDelegate.productStatus); 

    if ([ApplicationDelegate.productStatus isEqualToString:@"FREE"]) 
    { 
     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:@"This is free for you so ENJOY it!!!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil]; 
     [alert show]; 
     [alert release]; 
    } 
    else if ([ApplicationDelegate.productStatus isEqualToString:@"PAID"]) 
    { 
     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:@"You have already purchase it!!!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil]; 
     [alert show]; 
     [alert release]; 
    } 
    else 
    { 
     NSLog(@"Detail1 id for product = %d", ApplicationDelegate.objectID); 
     NSString *product = [NSString stringWithFormat:@"com.companyname.inAppDemo.module%d",ApplicationDelegate.objectID]; 
     NSLog(@"In-App product-id = %@", product); 



     SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects:product,nil]]; 
     request.delegate = self; 
     [request start]; 

    } 
} 

私を助けてください。

ありがとうございます。

答えて

2

「契約、税金、銀行」セクションで有効な契約が有効である必要があります。 もちろん、正しいプロビジョニングプロファイルを使用し、そのIDのApp Purchaseで有効にしたこと、そして(最後に)iTunes Connectで購入可能なアイテムを追加したことを確認してください(スクリーンショットのとおり)。

関連する問題