2011-08-11 14 views
2

iphone-ipadアプリケーションにアプリ購入機能を追加しました。現在アプリストアで動作しています。私はこのアプリを更新し、トランザクション状態通知にIn App Purchaseの状態がSKPaymentTransactionStatePurchasedに変更されない

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
{ 
    for (SKPaymentTransaction *transaction in transactions) 
    { 
     NSLog(@"Payment Queue"); 
     switch (transaction.transactionState) 
     { 
      case SKPaymentTransactionStatePurchased: 
       [self completeTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateFailed: 
       NSLog(@"Payment not finished"); 
       [self failedTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateRestored: 
       [self restoreTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStatePurchasing: 
       NSLog(@"Trying To Purchase"); 
       break; 
      default: 
       NSLog(@"Buraya giriyor"); 
       break; 
    } 
} 

}

を取得するには、以下の方法を使用しますが、私はトランザクションの状態が失敗し得るサンドボックスサーバーに接続しようとすると問題があるのです。 App Storeの作業用のものとすべて同じです。私はちょうどアプリのいくつかのビューを更新しました。ストアでアプリを使用している間、AppleIDについて質問し、コンテンツのダウンロードを確認するよう求めます。私はアプリの購入でテストしていたが、このAppleIDと確認を求めていた。しかし今、製品識別子を見つけて取得しても、これらの確認を求めることはありません。



金1月9日午前4時14分19秒のiPodタッチCCDergi [1740]:indirilenappkey = 201107

2つのライン間のログ情報私が購入しようとしています製品に属します。


金1月9日04:14:21 iPod touch CCDergi [1740]:--------------------------- -------------------

金1月9日4時14分21秒のiPodタッチCCDergi [1740]:商品タイトル:コールセンター生命発行8

Fri Jan 9 04:14:21 iPod touch CCDergi [1740]:製品の説明:コールセンターライフマガジンの第8号

金1月9日04:14:21 iPod touch CCDergi [1740]:製品価格:2.99

Fri Jan 9 04:14:21 iPod touch CCDergi [1740]:製品ID:com.selvitech.cclife.201107

金1月9日04:14:21 iPod touch CCDergi [1740]: - --------------------------------------------

Fri Jan 9午前4時14分21秒のiPodタッチCCDergi [1740]:購入Dergi

金1月9日午前4時14分21秒のiPodタッチCCDergi [1740]:お支払いキュー

金1月9日午前4時14分21秒iPod touch CCDergi [1740]:購入しようとする

金1月9日午前4時14分25秒のiPodタッチCCDergi [1740]:お支払いキュー

金1月9日午前4時14分25秒のiPodタッチCCDergi [1740]:お支払いは



何を終了していません問題がありますか?私は行方不明で何ですか?

私はtransactionReceipt方法はでは使用できません気づい

(それはまだ他の人のために役立つかもしれませんが...これは、私のために動作しなかったことをキャンセル)** ..事前に

+0

同じです。状態がSKPaymentTransactionStatePurchasingの後は、ハングします。 paymentQueue:updatedTransactions:決してもう一度呼び出されません。 私はサンドボックス環境がダウンしているのを見たことがありますが、これは決してそうではありません。通常、有効な製品は0個だけ返されますが、テストアカウントはロックされます。 –

+0

私は同じ問題を抱えています。誰かがこの問題の解決策を持っているなら、素晴らしいだろう。 – miho

答えて

1

をありがとうiOS9。レシートデータの代わりにnil値を返します。したがって、この方法を使っているアプリの中には購入に失敗するものがあります。このメソッドはiOS7以降非推奨です。ついにそれは働かなくなった。

NSData receipt = [transaction transactionReceipt]; //always return nil on ios9 

[NSBundle appStoreReceiptURL]を使用して領収書データを取得する必要があります。

NSURL* url = [[NSBundle mainBundle] appStoreReceiptURL]; 
    NSData* receipt = [NSData dataWithContentsOfURL:url]; //works fine. 

これをテスト用にアプリケーションに統合しようとしたら、私は更新します。

関連する問題