2017-08-06 75 views
1

我想为我的应用程序设置Apple Pay,但由于某种原因,PKPaymentViewController总是返回为零(如果代码中的语句是测试此)?任何想法为什么?PKPaymentAuthorizationViewController总是返回nil?

@IBAction func payAction(_ sender: Any) { 

    price = donationAmount.text 
    print(price) 

    let request = PKPaymentRequest() 
    request.merchantIdentifier = applePayMerchantID 
    request.supportedNetworks = SupportedPaymentNetworks 
    request.merchantCapabilities = PKMerchantCapability.capability3DS 
    request.countryCode = "GBR" 
    request.currencyCode = "GBP" 
    request.requiredBillingAddressFields = PKAddressField.all 

    //request.applicationData = "This is a test".dataUsingEncoding(NSUTF8StringEncoding) 

    let paymentSummary = [PKPaymentSummaryItem(label:"Sponsorship", amount: 10.00)] 

    request.paymentSummaryItems = paymentSummary 

    let applePayController: PKPaymentAuthorizationViewController = PKPaymentAuthorizationViewController(paymentRequest: request) 

    applePayController.delegate = self; 


    if(applePayController == nil){ 
     print("___") 
    } else{ 
     self.present(applePayController, animated: true, completion: nil) 
    } 
} 


func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, completion: @escaping (PKPaymentAuthorizationStatus) -> Void) { 
    completion(PKPaymentAuthorizationStatus.success) 
} 

func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) { 
    controller.dismiss(animated: true, completion: nil) 
} 
+0

使用此功能'canMakePayments(usingNetworks:)'来检查是否可以进行支付。并告诉我们结果 –

+0

使用该功能返回为真 –

+0

您是否在iPhone设备上正确配置Apple Pay? –

回答

1

您配置countryCode与错ISO

COUNTRYCODE

两个字母的ISO 3166国家代码。

为英国国家代码为GB

Documentation

+0

哈哈哈不能相信我错过了。谢谢!! –

+0

@MatthewFrankland它现在在工作吗? –