6

アプリでアプリ内購入をテストしようとしています。

アプリ内購入を購入したテスト ユーザーでアプリ内購入を復元すると、すべて正常に動作します。

しかし、フレームワークが次のメソッドを呼び出すことを期待する前に、アプリ内購入を行わなかったユーザーとアプリ内購入を復元しようとすると:

-paymentQueue:restoreCompletedTransactionsFailedWithError:

代わりに、フレームワークは次を呼び出します。

-paymentQueueRestoreCompletedTransactionsFinished:

私のテストユーザーがすでにアプリ内購入を購入したように....

これは正常な動作ですか?もしそうなら、アプリ内購入を購入せずに復元しようとしているユーザーをテストするにはどうすればよいですか?

4

3 に答える 3

7

ここで答えを参照してください: iOS のアプリ内購入の復元で多くのトランザクションが返されます

トランザクションオブザーバーで処理する必要があります。

つまり、復元プロセスを次のように開始します。

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

次に、次のトランザクション オブザーバーが呼び出されます。

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
    int thisIsTheTotalNumberOfPurchaseToBeRestored = queue.transactions.count;

    for (SKPaymentTransaction *transaction in queue.transactions)
    {
        NSString *thisIsProductIDThatHasAlreadyBeenPurchased = transaction.payment.productIdentifier;

        if([thisIsProductIDThatHasAlreadyBeenPurchased isEqualToString:product1ID])
        {
            //Enable product1 here
        }
    }
}
于 2012-06-28T09:38:44.290 に答える
1

MKStoreKit フレームワークを試してくださいhttps://github.com/MugunthKumar/MKStoreKit かなり優れた、よく管理されたフレームワークです。アプリ内購入のあるアプリがいくつかあります。そのような問題は一度もありませんでした。

于 2012-06-20T06:29:00.507 に答える