我尝试在我的应用程序中实现Apple Pay,但收到一个错误,如下代码片段中的“应用程序试图在目标上呈现一个 nil 模态视图控制器”,任何人都可以告诉我我是否出错了。
PKPaymentAuthorizationViewController *vc = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:payment];
vc.delegate = self;
[self presentViewController:vc animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
您的应用程序的 Apple Pay 权限可能未正确设置。
我注意到未设置权利时的canMakePayments退货YES和canMakePaymentsUsingNetworks:退货。NO
(我还注意到,YES当您设置的商家 ID 与PKPaymentRequest您的 Apple Pay 权利的商家 ID 不匹配时,它们都会返回。在这种情况下,您的PKPaymentAuthorizationViewController将非零,但呈现它会在控制台)。
因此,要验证是否为您的应用配置了 Apple Pay,请确保目标设置的“功能”部分中的“Apple Pay”为“打开”,并且它具有商家标识符(如果您没有,则需要设置该标识符)还没有)。
然后:
PassKit集成方法,请确保将merchantIdentifier属性设置为权利中匹配的商家标识符。请检查此代码:
if ([PKPaymentAuthorizationViewController canMakePayments]) {
NSLog(@"Can Make Payments");
PKPaymentAuthorizationViewController *viewController = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
if (!viewController) { /* ... Handle error ... */ }
viewController.delegate = self;
[self presentViewController:viewController animated:YES completion:nil];
}
else {
NSLog(@"Can't Make payments");
}
Run Code Online (Sandbox Code Playgroud)
或者
| 归档时间: |
|
| 查看次数: |
3805 次 |
| 最近记录: |