Braintree DropIn + Apple Pay,未出现Apple Pay项目

问题描述 投票:1回答:1

我成功地从Braintree SDK调用了DropIn视图。 BTDropInRequest设置应显示三个项目:

  1. 贝宝
  2. 信用卡
  3. Apple Pay

但由于某种原因,在DropIn视图中只渲染了两个而不是三个:

  1. 贝宝
  2. 信用卡

我做错了什么?

制备:

  • 创建并上载所有证书
  • Apple Pay已启用项目功能
  • 商家ID已添加
  • Apple Pay支持我测试的设备

这是一个请求的方法代码:

func showDropIn(clientTokenOrTokenizationKey: String) {

        BTUIKAppearance.darkTheme()
        let request = BTDropInRequest()    
        let canMakePayments = PKPaymentAuthorizationViewController.canMakePayments() && PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [.amex, .visa, .masterCard])
        request.applePayDisabled = !canMakePayments
        request.cardDisabled = false

        let dropIn = BTDropInController.init(authorization: clientTokenOrTokenizationKey, request: request) { (controller, result, error) in

            if (error != nil) {
                print("ERROR")
            } else if (result?.isCancelled == true) {
                print("CANCELLED")

            } else if let result = result{

                switch result.paymentOptionType {
                case .applePay ,.payPal,.masterCard,.discover,.visa:

                    if let paymentMethod = result.paymentMethod {

                        controller.dismiss(animated: true, completion: nil)
                    } else {

                        controller.dismiss(animated: true, completion: {

                            self.braintreeClient = BTAPIClient(authorization: clientTokenOrTokenizationKey)

                            let paymentRequest = self.paymentRequest()

                            if let vc = PKPaymentAuthorizationViewController(paymentRequest: paymentRequest)
                                as PKPaymentAuthorizationViewController?
                            {
                                vc.delegate = self
                                self.present(vc, animated: true, completion: nil)
                            } else {
                                print("Error: Payment request is invalid.")
                            }

                        })
                    }

                default:
                    print("error")
                    controller.dismiss(animated: true, completion: nil)
                }
            }
        }

        self.present(dropIn!, animated: true, completion: nil)
    }
ios swift applepay braintree-sandbox
1个回答
0
投票

根据Braintree的文档,您应该完成Apple Pay集成,并且支持客户的设备和卡类型。

https://developers.braintreepayments.com/guides/drop-in/setup-and-integration/ios/v4#apple-pay

另外,请注意这一点

如果使用具有客户ID的客户端令牌,Apple Pay卡将不会自动存储。您可以使用付款方式nonce在服务器上创建付款方式。

© www.soinside.com 2019 - 2024. All rights reserved.