通过Braintree PayPal付款始终无法通过iOS

通过Braintree PayPal付款始终无法通过iOS,第1张

概述我已经在 Braintree iOS’s GITHub.开了一张关于这个的门票只是希望快速得到一些帮助.问题出在这里: 正如标题所说,我的付款(在iOS中)总是失败.显然,我同事的工作(Android)付款成功. 我从这里完整地遵循了示例代码和指南:https://developers.braintreepayments.com/guides/paypal/client-side/ios/v4 在 我已经在 Braintree iOS’s GITHub.开了一张关于这个的门票只是希望快速得到一些帮助.问题出在这里:

正如标题所说,我的付款(在iOS中)总是失败.显然,我同事的工作(AndroID)付款成功.

我从这里完整地遵循了示例代码和指南:https://developers.braintreepayments.com/guides/paypal/client-side/ios/v4

在iOS中,经过所有过程(客户端令牌从我们的服务器 – > BT SDK – > PayPal浏览器 – >应用程序 – >发送nonce到我们的服务器),我从我们的服务器得到的错误总是:

PayPal pending payments are not supported.

我的后端人也不知道背后的原因,他只是展示并给了我这个日志:

{   "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浏览器太快就解散了,这就是为什么我得到的nonce总是无效的.这是为什么?

解决方法 完全披露:我在Braintree工作.如果您有任何其他问题,请随时联系
support.

根据您在问题中发布的付款方式nonce,我能够查看服务器端日志以查看问题所在.

在没有泄露任何特定的API Credentials的情况下,似乎您的设置中负责generating a client token的服务器传递的是与负责使用该支付方式nonce创建交易的服务器不同的SandBox merchant ID,这导致错误.

您的服务器负责生成客户端令牌,其中包含客户端初始化客户端SDK所需的授权和配置详细信息.创建付款方式nonce时,它与客户端令牌授权中指定的商家ID相关联. merchant ID passed during the Transaction Sale call or other API Calls必须与该特定付款方式nonce绑定的商家ID匹配,因此您需要在后端代码中修复此差异.

总结

以上是内存溢出为你收集整理的通过Braintree PayPal付款始终无法通过iOS全部内容,希望文章能够帮你解决通过Braintree PayPal付款始终无法通过iOS所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1016573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存