我将PK Payment auth视图控制器实例返回为nil。这段代码有什么问题?
if([PKPaymentAuthorizationViewController canMakePayments])
{
if ([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]])
{
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
request.currencyCode = @"USD";
request.countryCode = @"US";
request.merchantCapabilities = 0;
request.requiredBillingAddressFields=PKAddressFieldAll;
request.merchantIdentifier = @"merchant.com.domain.mine";
PKPaymentSummaryItem *item = [[PKPaymentSummaryItem alloc] init];
item.label=@"Merchant";
item.amount=[NSDecimalNumber decimalNumberWithString:@"10"];
request.paymentSummaryItems=@[item];
PKPaymentAuthorizationViewController *viewController = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
viewController.delegate = self;
[self presentViewController:viewController animated:YES completion:nil];
}
}
在访问PKPaymentAuthorizationViewController
之前,您应该在iPhone设备上正确配置Apple Pay。如果您尚未在设备上配置Apple Pay,您将获得nil
的PKPaymentAuthorizationViewController
值。你甚至可以在控制台上找到一个说明“This device cannot make payment.
”的例外
要在您的设备上配置Apple Pay,请按以下步骤操作:
PKPaymentAuthorizationViewController
实例。希望这会有所帮助。
我有一个类似的问题。它看起来像你包含它,但对于其他任何苦苦挣扎的人来说,我的问题并不是最初为请求提供merchantCapabilities。
迅速:
request.merchantCapabilities = PKMerchantCapability.capability3DS
https://developer.apple.com/documentation/passkit/pkmerchantcapability?language=objc