2015-07-20 71 views
3

我得到PK付款认证视图控制器实例返回为零。这段代码有什么问题?苹果支付PKPaymentauthorizationViewController总是返回零时加载付款请求

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]; 
     [email protected]"Merchant"; 
     item.amount=[NSDecimalNumber decimalNumberWithString:@"10"]; 
     [email protected][item]; 
     PKPaymentAuthorizationViewController *viewController = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request]; 
     viewController.delegate = self; 
     [self presentViewController:viewController animated:YES completion:nil]; 
    } 
} 

回答

5

在访问PKPaymentAuthorizationViewController之前,您应该在iPhone设备上正确配置Apple Pay。如果您尚未在设备上配置Apple Pay,您将获得PKPaymentAuthorizationViewControllernil值。你甚至可以找到在控制台上的异常,说明“This device cannot make payment.

要在设备上配置苹果收费遵循以下步骤:

  • 转到设置
  • 选择存折和苹果支付选项(如果此选项不设置可见,去常规 - >语言&地区,您所在的地区变成美国或英国,在这之后,你就可以看到存折&苹果支付设置
  • 打开存折在主屏幕上的应用程序,并配置一个有效的信用卡/借记卡选件(仅限美国/英国的卡)。
  • 验证添加的卡后,运行您的应用程序,您将获得有效的PKPaymentAuthorizationViewController实例。

希望这会有所帮助。

+0

谢谢pradeep。现在该设备配置得很好,我们在日常生活中使用它。 canMakePayment返回True。 – Itzdsp

+0

谢谢,这很有帮助。 –

+1

我尝试使用Sanbox测试仪,详细信息请参阅https://developer.apple.com/support/apple-pay-sandbox/,但这不适用于我的情况。它始终给我没有价值 –