2017-08-06 11 views
1

私のアプリケーションでApple Payを設定しようとしていますが、何らかの理由でPKPaymentViewControllerが常にnilとして返されます。なぜどんなアイデア?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

その関数を使用してtrueに返されます –

+0

あなたのiPhoneデバイスにApple Payを正しく設定していますか? –

答えて

1

あなたは間違ってISO

COUNTRYCODE

2文字のISO 3166国コードでcountryCodeを設定します。あなたが支払いを行うことができれば `チェックする:イギリスの国コードのための

GB

Documentation

+0

haha​​haは私がそれを逃したと信じることはできません。ありがとう!! –

+0

@MatthewFranklandそれは今働いていますか? –

関連する問題