購入を復元するための適切な/最適な文言に興味がありました。
[error localizedDescription]
insideを使用するだけで、十分な「不明なエラー」アラートが表示され-(void)paymentQueue:restoreCompletedTransactionsFailedWithError:
ました。(todo: フィルレーダー)
そこで、Apple のやり方を調べてみました。現時点で消費不可のアプリ内購入が可能な Apple の唯一のアプリは GarageBand (2014 年 12 月) です。
「購入を復元する」、「以前の購入を復元する」などの代わりに、"Already Purchased?"
.
しかし、これは私がより興味を持っている画面です "Already Purchased?"
。復元するものが何もないときにを押した結果です。
"There are no items available to restore at this time."
革新的ではありませんが、「未知のエラー」を打ち負かします
では、見てみましょう-(void)paymentQueue:restoreCompletedTransactionsFailedWithError:
。
iOS :
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
{
if ([error.domain isEqual:SKErrorDomain] && error.code == SKErrorPaymentCancelled)
{
return;
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"There are no items available to restore at this time.", @"")
message:nil
delegate:nil
cancelButtonTitle:NSLocalizedString(@"OK", @"")
otherButtonTitles:nil];
[alert show];
}
OS X :
私は、OS X で同じテキストだけに満足していません。
私にとっての 1 つのオプションは、ユーザーに購入する必要があることを"To use it, you need to buy “%@”."
.
私が思いついた別のオプションは、そこにブラウザを表示させることです購入履歴。で直接リンクできることがわかりましたitms://phobos.apple.com/purchaseHistory
。正直なところ、iTunes Store での購入履歴はくだらないものです。
しかし、何かを買い戻させようとしないということは、人々に再保険をかけるのに役立つかもしれません。顧客は非消耗品と消耗品の違いを知らない、または区別できないと常に想定してください。また、非消耗品に対して 2 回請求できないことも知りません。
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
{
if ([error.domain isEqual:SKErrorDomain] && error.code == SKErrorPaymentCancelled)
{
return;
}
NSAlert *alert = nil;
alert = [NSAlert alertWithMessageText:NSLocalizedString(@"There are no items available to restore at this time.", @"")
defaultButton:NSLocalizedString(@"OK", @"")
alternateButton:NSLocalizedString(@"Purchase History", @"")
otherButton:nil
informativeTextWithFormat:@"You can see your purchase history in the iTunes Store."];
NSModalResponse returnCode = [alert runModal];
if (returnCode == NSAlertAlternateReturn)
{
NSURL *purchaseHistory = [NSURL URLWithString:@"itms://phobos.apple.com/purchaseHistory"];
[[NSWorkspace sharedWorkspace] openURL:purchaseHistory];
}
}
OS X での例
テストに関する注意事項 (OS X、itunesconnect サンドボックス ユーザー):
ユーザーがキャンセルをクリックすると:
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
Error Domain=SKErrorDomain Code=2 "The payment was canceled by the user" UserInfo=0x600000470a40 {NSLocalizedDescription=The payment was canceled by the user}
復元するものがない場合:
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
Error Domain=SKErrorDomain Code=0 "Unknown Error." UserInfo=0x60800007fb80 {NSLocalizedDescription=Unknown Error.}