残念ながら、Apple は復元ボタンがないという理由で私のアプリを拒否しました。ユーザーにシームレスなエクスペリエンスを提供したかったのですが、いくつか問題があります。
- (void)purchaseProUpgrade
{
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
// User is prompted for iTunes username and password here (1)
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}
// Then this delegate Function Will be fired
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
if( queue.transactions.count == 0 ) {
[self setUpgradeProductId];
// User is prompted for iTunes username and password here (2)
SKPayment *payment = [SKPayment paymentWithProductIdentifier:kInAppPurchaseProUpgradeProductId];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}else {
[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerTransactionSucceededNotification object:self userInfo:NULL];
}
}
上記は良い解決策ですか?ロジックは次のようになります。
- ユーザーがボタンを押して、アプリ内購入を削除します。
- ユーザーが購入済みかどうかを確認します (ユーザーはユーザー名とパスワードを入力する必要があります)。
- ユーザーがすでに購入している場合は、復元します
- ユーザーがまだ購入していない場合は、支払いを求められます (ユーザーはパスワードを再度入力する必要があります)。
このアプローチの問題点は次のとおりです。 1. 追加のサーバー呼び出し 2. ユーザーは詳細を 2 回入力する必要があります。
実演できる復元ボタンを実際に実装した人はいますか?