Braintree Drop-in UI - 使用 AJAX 发送表单



我正在尝试实现Braintree Drop-in UI,我想使用自定义jQuery ajax方法发送表单。以前,我曾经使用 jQuery serialize() 方法发送(非插入式 UI)表单,但对于新的(动态加载的)Dropin UI 表单,serialize() 方法似乎不起作用(payment_method_nonce值设置为空)。但是,通过基本的 html 表单(没有 ajax)发送表单似乎工作正常,所以我的payment_method_nonce在那里,它只是在此过程中迷路了。

如何确保 serialize() 方法不会丢失payment_method_nonce值?

或者作为一个更一般的问题,如何使用 ajax 发送插入式 UI 表单?

我知道在执行braintree.setup时可以使用paymentMethodNonceReceived标志,但这在我的情况下不起作用,因为我需要将发送请求/处理响应的代码与braintree.setup分开。

干杯

显然,paymentMethodNonceReceived方法是最终要走的路。创建令牌后,我使用它来创建一个隐藏字段,该字段是表单的一部分,然后可以使用 serialize() 方法对其进行序列化,没有任何问题。下面是一个代码示例:

<script type="text/javascript">
    braintree.setup("PaymentTokenGoesHere", "dropin", {
        container: "myDiv",
        paymentMethodNonceReceived: function (event, nonce) {
            $('#myForm').append("<input type='hidden' name='payment_method_nonce' value='" + nonce + "'></input>");
            CallAjaxMethod();
        }
    });
</script>

最新更新