2015-06-02 9 views
14

नीचे दिए गए मानक UIAlertView कोड का उपयोग करके ऐप्पल पे PKPaymentAuthorizationViewController शीट के नीचे अलर्ट दिखाएगा।आप ऐप्पल पे PKPaymentAuthorizationViewController के ऊपर UIAlertView कैसे दिखाते हैं?

[[[UIAlertView alloc] initWithTitle:@"Payment Error" 
          message:[error localizedDescription] 
          delegate:nil 
        cancelButtonTitle:@"Okay" 
        otherButtonTitles:nil] show]; 

मैं इसे भुगतान प्राधिकरण पत्र से ऊपर कैसे दिखा सकता हूं? या ऐप्पल पे के लिए त्रुटि संदेश पेश करने का एक अलग तरीका है? जब उपयोगकर्ता अमान्य शिपिंग पता दर्ज करता है तो मैं विशिष्ट त्रुटि संदेश देना चाहता हूं।

+0

इस बारे में कोई खबर? – Gabriel

+0

हाय दोस्तों! क्या आपको कोई समाधान मिल रहा है? – Yoihito

+0

आप अलर्ट कैसे पेश कर रहे हैं? मुझे ऐप्पलपे के बारे में बहुत कुछ पता नहीं है, लेकिन चूंकि यह एक व्यू कंट्रोलर है, क्या आप Applepayviewcontroller के दृश्य पर अलर्ट पेश कर रहे हैं? – Knight0fDragon

उत्तर

6

वहाँ के लिए

public func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didAuthorizePayment payment: PKPayment, 
handler completion: (PKPaymentAuthorizationResult) -> Void) 

आईओएस 11 में एक नया कॉलबैक आप देख सकते हैं है,

completion: (PKPaymentAuthorizationStatus) -> Void) 
से हैंडलर परिवर्तन

handler completion: (PKPaymentAuthorizationResult) -> Void) 

आईओएस 11 के साथ शुरू करने के लिए हम पूरा होने हैंडलर पर NSErrors की एक सरणी के साथ एक status मिल जाएगा।

अधिक जानकारी के लिए this year's session पर एक नज़र डालें।

8

आप किसी भी Remote View Controllers के शीर्ष पर UI तत्व नहीं दिखा सकते हैं क्योंकि यह सिस्टम की सुरक्षा से समझौता कर सकता है। इसमें PKPaymentAuthorizationViewController शामिल है।

रिमोट देखें नियंत्रकों here

+0

@ क्लिंगर के साथ सहमत हैं ... – Sabby

6

बारे में अधिक पढ़ें आप प्रणाली की सुरक्षा की वजह से PKPaymentAuthorizationViewController पर UIAlertView नहीं दिखा सकते हैं।

PKPaymentAuthorizationViewController का पूरा यूआई रिमोट व्यू कंट्रोलर के माध्यम से प्रस्तुत किया जाता है। इसका अर्थ यह है कि PKPaymentRequest के बाहर आप इसे देते हैं, अन्यथा इस दृश्य की सामग्री को स्टाइल या संशोधित करना असंभव है।

और ऐप्पल पे त्रुटि को संभालने के लिए आपको भुगतान दिखाने के लिए PKPaymentAuthorizationViewControllerDelegate प्रतिनिधि विधि का उपयोग करना सफलतापूर्वक पूरा हो गया है या कोई त्रुटि है।

शो PKPaymentAuthorizationViewController के लिए, वर्तमान भुगतान दृश्य नियंत्रक के रूप में:

PKPaymentAuthorizationViewController *paymentVC = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request]; 
paymentVC.delegate = self; 
[self presentViewController:paymentVC animated:true completion:nil]; 
  • ग्राहक टच आईडी का उपयोग कर खरीद को मंजूरी दी (या, कि अगर विफल रहता है 3 बार, उनके पासकोड दर्ज करके)।
  • थंबप्रिंट आइकन एक स्पिनर में बदल जाता है, लेबल "प्रसंस्करण"
  • आपका प्रतिनिधि प्राप्त करता paymentAuthorizationViewController (साथ _: didAuthorizePayment: पूरा होने :) कॉलबैक
  • आपका आवेदन आपके भुगतान प्रोसेसर और वेबसाइट के साथ अतुल्यकालिक रूप से संचार वास्तव में उन भुगतान विवरणों के साथ चार्ज करने के लिए बैकएंड। एक बार यह पूरा होने के बाद, आप हैंडलर को पूरा करने का आह्वान करते हैं जिसे आपको पीकेपेमेंट प्राधिकरणस्टैटस.success या पीकेपेमेंट प्राधिकरणस्टैटस.फेलर परिणाम के आधार पर पैरामीटर के रूप में दिया गया है।
  • PKPaymentAuthorizationViewController स्पिनर सफलता या विफलता आइकन में एनिमेट करता है। यदि सफल हो, तो एक अधिसूचना ग्राहक के क्रेडिट कार्ड पर चार्ज इंगित करने वाले पासबुक से पहुंच जाएगी।
  • आपके प्रतिनिधि को भुगतान प्राधिकरण ViewControllerDidFinish (_ :) कॉलबैक प्राप्त होता है। यह भुगतान स्क्रीन को खारिज करने के लिए खारिज करने के लिए जिम्मेदार (एनिमेटेड: समापन :) के लिए ज़िम्मेदार है।

Error Screen

Error Screen

- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller 
         didAuthorizePayment:(PKPayment *)payment 
           completion:(void (^)(PKPaymentAuthorizationStatus status))completion { 

    //========================================= 
    //========================================= 
    // Call your api here for charge payment and according to that api result show complition as follow 
    //======================================== 
    //======================================== 


    // Use your payment processor's SDK to finish charging your customer. 
    // When this is done, call: 
    completion(PKPaymentAuthorizationStatusSuccess); 

    // When this is Payment not completed, call: 
// completion(PKPaymentAuthorizationStatusFailure); 

    // When this is Supplied billing address is insufficient or otherwise invalid, call: 
// completion(PKPaymentAuthorizationStatusInvalidBillingPostalAddress); 

    // When this is Supplied postal address is insufficient or otherwise invalid, call: 
// completion(PKPaymentAuthorizationStatusInvalidShippingPostalAddress); 

    // When this is Supplied contact information is insufficient or otherwise invalid, call: 
// completion(PKPaymentAuthorizationStatusInvalidShippingContact); 
} 


// Sent to the delegate when payment authorization is finished. This may occur when 
// the user cancels the request, or after the PKPaymentAuthorizationStatus parameter of the 
// paymentAuthorizationViewController:didAuthorizePayment:completion: has been shown to the user. 
// 
// The delegate is responsible for dismissing the view controller in this method. 
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller { 
    [self dismissViewControllerAnimated:true completion:nil]; 
} 
0

एक एक्शन शीट चेतावनी की एक विशिष्ट शैली है जो नियंत्रण या क्रिया के जवाब में दिखाई देती है, और वर्तमान संदर्भ से संबंधित दो या दो से अधिक विकल्पों का एक सेट प्रस्तुत करती है। लोगों को कार्य शुरू करने, या संभावित विनाशकारी संचालन करने से पहले पुष्टि करने के लिए एक एक्शन शीट का उपयोग करें। छोटी स्क्रीन पर, स्क्रीन के नीचे से एक एक्शन शीट स्लाइड होती है। बड़ी स्क्रीन पर, एक एक्शन शीट एक बार पॉपओवर के रूप में दिखाई देती है।

यदि यह स्पष्टता जोड़ता है तो एक रद्द करें बटन प्रदान करें। जब कोई कार्य किसी कार्य को छोड़ रहा है तो एक रद्द करें बटन आत्मविश्वास उत्पन्न करता है। रद्द करें बटन हमेशा स्क्रीन के नीचे एक्शन शीट में शामिल किए जाने चाहिए।

विनाशकारी विकल्प प्रमुख बनाएं। विध्वंसक या खतरनाक क्रियाएं करने वाले बटनों के लिए लाल का उपयोग करें, और इन बटनों को एक्शन शीट के शीर्ष पर प्रदर्शित करें।

एक्शन शीट में स्क्रॉलिंग को सक्षम करने से बचें। यदि किसी एक्शन शीट में बहुत से विकल्प हैं, तो लोगों को सभी विकल्पों को देखने के लिए स्क्रॉल करना होगा। स्क्रॉलिंग को एक विकल्प बनाने के लिए अतिरिक्त समय की आवश्यकता होती है और अनजाने में बटन को टैप किए बिना करना मुश्किल होता है।

डेवलपर मार्गदर्शन के लिए, UIAlertController में निरंतर देखें।

संबंधित मुद्दे