2015-07-20 43 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/,但這不適用於我的情況。它始終給我沒有價值 –