2015-11-24 37 views
4

我正在爲我的應用程序實現Apple Pay。雖然我已經知道了一切,但我無法解除驗證的PKPaymentAuthorizationViewController。 這裏是我的代碼..無法解僱PKPaymentAuthorizationViewController

-(void) viewDidAppear:(BOOL)animated { 
    // request is initialized here. 
    paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request]; 

    //paymentPane is not nil. 
    paymentPane.delegate = self; 

    [self presentViewController:paymentPane animated:TRUE completion:nil]; 
} 

上述函數被調用,併成功地展示了蘋果支付視圖控制器來驗證付款。我已經實現了從委託下面的方法如下:

-(void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion { 
    NSLog(@"%@", [payment.token description]); 
    completion(PKPaymentAuthorizationStatusSuccess); 
} 

理想情況下,首先撞擊didAuthorizePayment,我們認證支付,如果傳球成功了成功,那麼paymentAuthorizationViewControllerDidFinish被調用,用來完成事務並隱藏Apple View Controller。我在那裏放置了斷點,它碰到了兩個函數,但ViewController不會消失。即使點擊Apple Pay View中的取消按鈕,它也不會執行。

我的類聲明如下,並執行所需的代表。

@interface ApplePayManager : UIViewController<PKPaymentAuthorizationViewControllerDelegate, UIAlertViewDelegate> 

關於我在做什麼的錯誤?爲什麼視圖控制器不會解散?

最後,我對iOS有點新。所以我會很感激指導和/或鏈接來澄清我的疑惑!

已經看了看: http://www.raywenderlich.com/87300/apple-pay-tutorial https://dzone.com/articles/integrating-your-ios-app-apple

回答

1

這個工作。我的隊友發現了這個解決方案。原來,我們提供ApplePay View的ViewController不是rootVC。所以,切換到rootVC工作。

UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController]; 

    [rootViewController presentViewController:paymentPane animated:TRUE completion:nil]; 
+0

我有同樣的問題,但這種解決方案仍不能:-( – hzxu

+0

工作,有人可以幫助我,我沒有得到代表呼籲都沒有。雖然我設置委託給自 –