【问题标题】:Unable to dismiss PKPaymentAuthorizationViewController无法关闭 PKPaymentAuthorizationViewController
【发布时间】:2015-11-24 22:42:18
【问题描述】:

我正在为我的应用程序实施 Apple Pay。虽然我已经大致弄清楚了一切,但我无法关闭进行身份验证的 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];
}

上述函数被调用并成功呈现 Apple Pay View Controller 以验证支付。我已经从委托中实现了以下方法:

-(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

【问题讨论】:

    标签: ios objective-c applepay


    【解决方案1】:

    这行得通。我的队友发现了这个解决方案。事实证明,我们展示 ApplePay 视图的 ViewController 不是 rootVC。因此,将其切换到 rootVC 是可行的。

      UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
    
      [rootViewController presentViewController:paymentPane animated:TRUE completion:nil];
    

    【讨论】:

    • 我遇到了同样的问题,但这个解决方案仍然不起作用:-(
    • 谁能帮帮我,我根本没有接到代表的电话。虽然我将委托设置为自我
    • @AbdulHannan 对不起,你解决了这个问题吗?
    • 这对我不起作用。我已经在根视图控制器上进行演示了。
    • @zaebolo 您还面临问题吗?我很乐意提供帮助
    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 2016-09-20
    • 2018-06-18
    • 2010-11-08
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多