2017-08-06 7 views
1

J'essaye de configurer Apple Pay pour mon application mais pour une raison quelconque le PKPaymentViewController est toujours retourné comme nul (si l'instruction dans le code devait le tester)? Des idées pourquoi?PKPaymentAuthorizationViewController renvoie toujours zéro?

@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

Utilisez cette fonction 'canMakePayments (usingNetworks:)' pour vérifier si vous pouvez effectuer des paiements. Et parlez-nous du résultat –

+0

Il est retourné comme vrai en utilisant cette fonction –

+0

Configurez-vous Apple Pay correctement sur votre iPhone? –

Répondre

1

Vous configurez countryCode avec mauvaise ISO

countryCode

L'ISO 3166 code pays à deux lettres.

pour le code pays Royaume-Uni est GB

Documentation

+0

hahaha ne peut pas croire que j'ai manqué cela. Merci!! –

+0

@MatthewFrankland ça marche maintenant? –