【发布时间】:2019-03-15 10:32:21
【问题描述】:
我成功地从 Braintree SDK 调用 DropIn 视图。 BTDropInRequest 设置应显示三个项目:
- 贝宝
- 信用卡
- 苹果支付
但由于某种原因,DropIn 视图只呈现了两个项目而不是三个:
- 贝宝
- 信用卡
我做错了什么?
准备工作:
- 所有证书均已创建并上传
- 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)
}
【问题讨论】:
-
我遇到了同样的问题。事实证明,我所在的国家/地区不支持 Apple Pay,尽管我使用的设备支持它。尝试在模拟器中运行相同的。解决了我的问题。
-
@bhakti123,几个小时前,我收到了来自 Braintree 支持的答复。虽然 Apple Pay 可能支持他们在我的乌克兰推出,但 Braintree 还没有。我还尝试在模拟器上使用午餐应用程序 - 结果相同,没有 Apple Pay 按钮。你在模拟器上的午饭前做了一些准备吗?
-
@RomanRomanenko 你找到解决方案了吗?
-
@balkaran singh,我所做的一切,我都做对了。我的本地测试服务器没有出现按钮。我在乌克兰进行了测试,客户在美国。当服务器端完成所有准备工作(他们将 Braintree 帐户注册为美国商家)并且我从服务器获取密钥时,Apple Pay 按钮终于出现了!
标签: ios swift applepay braintree-sandbox