我正在为我的应用程序实施 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