2012-04-03 8 views
4

私は、App In Purchaseを使用して新しいレベル/機能を購入できるようにするアプリケーションを開発しています。 自分の研究に基づいて、SKIductsRequestを使用してProductIdsのセットを渡してIn App Purchase製品をiTunesConnectから取得できることを知っている限り、そして、ユーザーがすでに製品を購入しているかどうかを確認し、それに応じてUIを処理する必要があります。購入した製品IDをNSUderDefaultsに保存し、返品された製品と照合して確認します。ユーザーがある段階でアプリの削除や再インストールを計画している可能性があり、NSUserDefaultsとユーザーの購入履歴が失われる可能性があるため、この手順についてはあまりよく分かりません。アプリの購入 - ユーザーの購入履歴の保存/取得| iOS

リンゴサーバーからユーザーの情報を取得する方法はありますか?または、私は私の最後にユーザーの購入の記録を保持する必要があります。

ありがとうございます。

P.S. I followed this tutorial

+0

「にアプリを再インストールした場合でも、ユーザーがすでに..このようにそれを購入することを、すべての製品idを含んで - (無効)paymentQueue:(SKPaymentQueue *)キューアイテムが復元されたときにupdatedTransactions:(NSArray *)transactions "がSKPaymentTransactionStateRestoredを返し、以前の購入に関する情報を取得するために" originalTransaction "プロパティを使用できますが、これが正しく返されるかどうかはわかりません。私はここで "http://stackoverflow.com/questions/6806766/skpaymenttransactionstaterestored-doesnt-get-called-when-in-app-purchase-is-bei"が返されないことをお読みください – Basel

+0

情報の取得に依存する場合、あなたのアプリケーションの使用はネットワーク接続を必要とすることによって。あなたが所有権を記録する何らかの方法を見つけた場合、ユーザーはインターネットからのネットワーク接続から離れた「オフグリッド」の間に仕事をすることができます。 –

答えて

5
あなたは配列を取得することができます

ユーザーのアンインストールは、/

- (void) checkPurchasedItems 
{ 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
}//You Call This Function 

//Then this delegate Function Will be fired 
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 
{ 
    purchasedItemIDs = [[NSMutableArray alloc] init]; 

    NSLog(@"received restored transactions: %i", queue.transactions.count); 
    for (SKPaymentTransaction *transaction in queue.transactions) 
    { 
     NSString *productID = transaction.payment.productIdentifier; 
     [purchasedItemIDs addObject:productID]; 
    } 

} 
+0

ありがとう、私はテストし、それが動作するかどうかをお知らせします。そして、あなたの答えを間違いなくupvoteし、選択されたものとして設定します –

関連する問題