2 votes

PKPaymentAuthorizationViewController renvoie toujours nil ?

J'essaie de configurer Apple Pay pour mon application mais pour une raison quelconque, le PKPaymentViewController est toujours renvoyé comme nil (l'instruction if dans le code était pour tester cela) ? Une idée de la raison ?

@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)
}

2voto

Adrian Bobrowski Points 1987

Vous configurez countryCode avec un mauvais ISO

countryCode

Le code pays à deux lettres de l'ISO 3166.

pour l'indicatif de pays du Royaume-Uni est GB

Documentation

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X