Я открыл тикет об этом на GITHub Braintree iOS. Просто надеюсь быстро получить некоторую помощь.Здесь возникает вопрос:
Как видно из названия, мой платеж (в iOS) всегда терпит неудачу.Хотя, по-видимому, платеж в работе моего коллеги (Android) успешен.
Я тщательно следовал образцам кодов и инструкциям отсюда: https://developers.braintreepayments.com/guides/paypal/client-side/ios/v4
В iOS после всего процесса (Client Tokenс нашего сервера -> BT SDK -> браузер PayPal -> приложение -> отправить одноразовый номер на наш сервер), ошибка, которую я получаю с нашего сервера, всегда:
PayPal ожидающие платежине поддерживается.
Мой бэкэнд-парень тоже не знает причину этого, он только показал и дал мне этот журнал:
{
"errors": {},
"params": {
"transaction": {
"type": "sale",
"amount": "1",
"merchantAccountId": "USD",
"paymentMethodNonce": "80823f63-5ea9-0b8b-67da-0710bd7d9ff1",
"orderId": "333",
"descriptor": {
"name": "company name*myurl.com"
},
"options": {
"submitForSettlement": "true",
"paypal": {
"customField": "custom",
"description": "description"
}
}
}
},
"message": "Unknown or expired payment_method_nonce.",
"creditCardVerification": null,
"transaction": null,
"subscription": null,
"merchantAccount": null,
"verification": null
}
И вот что я делаю при настройкемой SDK:
private func processPayPalClientToken(_ clientToken: String) {
SVProgressHUD.show(withStatus: "Please wait...")
self.braintreeClient = BTAPIClient(authorization: clientToken)
let payPalDriver = BTPayPalDriver(apiClient: self.braintreeClient)
payPalDriver.viewControllerPresentingDelegate = self
payPalDriver.appSwitchDelegate = self
let request = BTPayPalRequest(amount: self.bookingViewModel.getTotalAmount())
payPalDriver.requestOneTimePayment(request) { (nonce, error) in
SVProgressHUD.dismiss(completion: {
if let error = error {
self.showAlert(title: "title...", message: "Error: \(error.localizedDescription).", okayButtonTitle: "OK") { _ in }
return
}
guard let nonce = nonce else { return }
self.processNonceToServer(nonce)
})
}
}
Итак ... есть идеи, в чем причина этого?Спасибо!
РЕДАКТИРОВАТЬ: Дополнительная информация, которую я нашел некоторое время назад.Браузер SFSafari закрывается слишком рано, поэтому одноразовый номер всегда недействителен.Почему это так?