【发布时间】:2015-09-29 07:08:16
【问题描述】:
我有一个动态 AJAX 提交。我正在尝试使用 AJAX 将 Braintree (PayPal) 付款数据提交到 payment.php。不幸的是,Braintree 给了我一个 nonce 错误。 Braintree 在提交时使用代码(随机数)创建输入,但我的提交是在创建代码之前提交的。
Braintree 给了我一个创建代码的脚本
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
我使用类似的东西
$(document).on("submit","form",function(event){
if(!$(this).is("[action]")){
event.preventDefault()
formdata=new FormData(this)
submit(this)
}
submit(this) 调用 ajax。我试图延迟提交,但没有任何效果。例如。如果我在提交过程中调用 alert(),则添加代码并且提交工作正常;除了现在我有警报的事实。问题是两个代码同时运行,Braintree 代码反应太慢。我还尝试重新定位我的 JS 代码上方和下方的链接,但没有成功。
【问题讨论】:
-
您好,请不要使用 JS 来提交支付网关,而不是使用 PHP Braintree 库。
-
如何在不重新加载页面的情况下出现验证错误?还是必须重新加载,没有办法?
-
@Mitul.. 但是 PHP 是在我们的浏览器中不起作用的服务器端脚本。如果我们要在提交表单之前进行一些处理,那么 JS 是唯一的方法:)
-
您可以在自己的服务器上使用ajax调用,然后在客户端调用braintree支付方法b,密钥将可见
-
我无法理解您的方法。 Ajax 是用 JS 完成的,对吗?如果您查看流程here,我们的 JS 客户端将从我们的服务器获取一个令牌,该令牌将用于与 BrainTree 服务器的身份验证,从 BrainTree 服务器获取一个随机数,将该随机数发送到我们的服务器,然后使用再次确定 BrainTree 服务器。
标签: javascript php jquery ajax braintree