Braintree v2 将带有 post 的随机数返回给服务器
Braintree v2 getting nonce with a post back to the server
我正在尝试从 "v2/braintree.js" 获取随机数字符串。我如何在 post 上触发返回到服务器上的 link 按钮单击以生成 nonce 字符串?我想以这种方式检索它:
Request.Form["payment_method_nonce"].ToString();
在旧版本中 "v1/braintree.js" 我在单击按钮时使用了以下内容。
function submit_data() {
var braintree = Braintree.create('------key-------');
braintree.encryptForm('braintree-payment-form');
}
因为我想访问 post 上的随机数字符串并验证 post 上的所有字段,所以我使用了以下内容。我遇到的问题是 nonce 字符串是异步计算的。
我创造了
<asp:HiddenField ID="nonce_hidden" ClientIDMode="Static" runat="server" />
然后在 link 按钮上购买 我这样做了
<a href="#!" class="button" onclick="get_nonce_data();">Purchase</a>
然后我创建了一个不可见的 link 按钮,单击后 post 返回服务器。
<asp:LinkButton ID="cc_payment_next_btn" ClientIDMode="Static" runat="server" OnClick="cc_payment_next_btn_Click"></asp:LinkButton>
"Purchase" link 启动脚本以标记信用卡信息并将随机数字符串保存为隐藏值。一旦计算出 nonce 字符串,它就会在隐藏的 link 按钮上触发 'click',我将 post 返回服务器。
function get_nonce_data() {var first_name = document.getElementById("first_name_txt").value;var last_name = document.getElementById("last_name_txt").value;var zip_code = document.getElementById("zip_code_txt").value;var client = new braintree.api.Client({ clientToken: "client-token" });client.tokenizeCard({number: document.getElementById("cc_number_txt").value,cardholderName: first_name + ' ' + last_name,expirationDate: document.getElementById("cc_expiration_txt").value,cvv: document.getElementById("cc_ccv_txt").value,billingAddress: {postalCode: zip_code}}, function (err, nonce) {if (err === null) {document.getElementById("nonce_hidden").value = nonce;$('#cc_payment_next_btn')[0].click();}else {alert('An error has occured');}});}
然后所有的验证和处理都在后端完成。
我正在尝试从 "v2/braintree.js" 获取随机数字符串。我如何在 post 上触发返回到服务器上的 link 按钮单击以生成 nonce 字符串?我想以这种方式检索它:
Request.Form["payment_method_nonce"].ToString();
在旧版本中 "v1/braintree.js" 我在单击按钮时使用了以下内容。
function submit_data() {
var braintree = Braintree.create('------key-------');
braintree.encryptForm('braintree-payment-form');
}
因为我想访问 post 上的随机数字符串并验证 post 上的所有字段,所以我使用了以下内容。我遇到的问题是 nonce 字符串是异步计算的。
我创造了
<asp:HiddenField ID="nonce_hidden" ClientIDMode="Static" runat="server" />
然后在 link 按钮上购买 我这样做了
<a href="#!" class="button" onclick="get_nonce_data();">Purchase</a>
然后我创建了一个不可见的 link 按钮,单击后 post 返回服务器。
<asp:LinkButton ID="cc_payment_next_btn" ClientIDMode="Static" runat="server" OnClick="cc_payment_next_btn_Click"></asp:LinkButton>
"Purchase" link 启动脚本以标记信用卡信息并将随机数字符串保存为隐藏值。一旦计算出 nonce 字符串,它就会在隐藏的 link 按钮上触发 'click',我将 post 返回服务器。
function get_nonce_data() {var first_name = document.getElementById("first_name_txt").value;var last_name = document.getElementById("last_name_txt").value;var zip_code = document.getElementById("zip_code_txt").value;var client = new braintree.api.Client({ clientToken: "client-token" });client.tokenizeCard({number: document.getElementById("cc_number_txt").value,cardholderName: first_name + ' ' + last_name,expirationDate: document.getElementById("cc_expiration_txt").value,cvv: document.getElementById("cc_ccv_txt").value,billingAddress: {postalCode: zip_code}}, function (err, nonce) {if (err === null) {document.getElementById("nonce_hidden").value = nonce;$('#cc_payment_next_btn')[0].click();}else {alert('An error has occured');}});}
然后所有的验证和处理都在后端完成。