मुझे खरीद बहाल करने के लिए सही/सर्वोत्तम शब्द में रुचि थी।
मैं काफी "अज्ञात त्रुटि" अलर्ट देखा है, बस -(void)paymentQueue:restoreCompletedTransactionsFailedWithError:
अंदर [error localizedDescription]
का उपयोग कर। (TODO: रडार भरने)
तो मैं कैसे एप्पल यह करता है पर एक नज़र ले लिया। ऐप्पल से गैर-उपभोग योग्य इन-ऐप खरीद के साथ ऐप्पल का एकमात्र ऐप अभी गैरेजबैंड (दिसंबर, 2014) है।
इसके बजाय "पुनर्स्थापित खरीद", "खरीदारी पहले पुनर्स्थापित" या ... वे
"Already Purchased?"
के साथ जाने की
।
लेकिन यहाँ स्क्रीन मैं में अधिक रुचि हूँ, "Already Purchased?"
दबाने जब वहाँ बहाल करने के लिए कुछ भी नहीं है का परिणाम है:
"There are no items available to restore at this time."
क्रांतिकारी नहीं है, लेकिन नरक धड़कता है "अज्ञात त्रुटि" से बाहर
तो -(void)paymentQueue:restoreCompletedTransactionsFailedWithError:
पर देखें।
आईओएस:
- (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];
}
ओएस एक्स:
मैं सिर्फ messageText साथ पर ओएस एक्स एक NSAlert सिर्फ एक ही पाठ और कोई informativeText साथ खुश नहीं हूँ सिर्फ खाली लग रहा है और गलत
मेरे लिए एक विकल्प उपयोगकर्ता को यह बताना है कि उसे "To use it, you need to buy “%@”."
जैसे कुछ खरीदने की ज़रूरत है।
एक और विकल्प जिसके साथ मैं आया था उन्हें ब्राउज़र को Purchase History दे रहा है। मैंने पाया कि आप सीधे itms://phobos.apple.com/purchaseHistory
के साथ इसे लिंक कर सकते हैं। आईट्यून्स स्टोर में सभी ईमानदारी खरीद इतिहास में बकवास का एक टुकड़ा है, यह आपको हमेशा कुछ खोजने के लिए ले जाएगा।
लेकिन शायद यह लोगों को पुन: बीमा करने में मदद करता है कि हम उन्हें कुछ खरीदना नहीं चाहते हैं। हमेशा मान लें कि आपके ग्राहक गैर-उपभोग योग्य और उपभोग्य के बीच अंतर नहीं जानते हैं या नहीं बता सकते हैं। और यह नहीं पता कि उन्हें गैर-उपभोग्य के लिए दो बार शुल्क नहीं लिया जा सकता है। ओएस पर
- (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];
}
}
उदाहरण एक्स
परीक्षण नोट्स (ओएस एक्स, 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.}
बेंजामिन का उत्तर आपके द्वारा पूछे जाने वाले अधिक सुरुचिपूर्ण समाधान प्रदान करता है। क्या आप अपना उत्तर स्वीकार किए गए उत्तर के रूप में चिह्नित कर सकते हैं ताकि सभी को ढूंढने के लिए यह शीर्ष पर आ जाए? – Timo
हाय @ निकोलस मिआरी, आपने अपनी समस्या को – Ranjit