Javascript 将BraintreeJS paymentnonce有效负载传递到ASP.NET Web表单

Javascript 将BraintreeJS paymentnonce有效负载传递到ASP.NET Web表单,javascript,asp.net,webforms,braintree,Javascript,Asp.net,Webforms,Braintree,我正在尝试使用Chargebee的API+BraintreeJS(最容易获得PCI合规性)将Chargebee与Braintree集成。下面是可以使用的方法的链接()。根据该文件,我可以得出结论,这些是步骤 1) 使用.NET的Braintree SDK生成clientToken 2) 使用BraintreeJS标记所有托管字段,并发送到Braintree API以立即获得付款 3) 使用ChargeBee SDK for.NET并立即发送付款以在ChargeBee中创建订阅 我已经设法做到了(

我正在尝试使用Chargebee的API+BraintreeJS(最容易获得PCI合规性)将Chargebee与Braintree集成。下面是可以使用的方法的链接()。根据该文件,我可以得出结论,这些是步骤

1) 使用.NET的Braintree SDK生成clientToken 2) 使用BraintreeJS标记所有托管字段,并发送到Braintree API以立即获得付款 3) 使用ChargeBee SDK for.NET并立即发送付款以在ChargeBee中创建订阅

我已经设法做到了(1)和(2),但我的问题是,在回邮过程中,如何读取当前付款?我尝试使用控制器,但仍然得到空值

这是我的密码


var form=document.querySelector(“#cardForm”);
var授权=“”;
braintree.client.create({
授权:授权
},函数(错误,客户端实例){
如果(错误){
控制台错误(err);
返回;
}
创建HostedFields(客户端实例);
});
函数createHostedFields(clientInstance){
braintree.hostedFields.create({
客户:clientInstance,
风格:{
“输入”:{
“字体大小”:“16px”,
“字体系列”:“courier,monospace”,
“字体重量”:“较轻”,
“颜色”:“ccc”
},
“:焦点”:{
“颜色”:“黑色”
},
“.valid”:{
“颜色”:“8bdda8”
}
},
字段:{
编号:{
选择器:“#卡号”,
占位符:“411111111111111111”
},
cvv:{
选择器:“#cvv”,
占位符:“123”
},
截止日期:{
选择器:“#到期日”,
占位符:“MM/YYYY”
},
后代码:{
选择器:“#邮政编码”,
占位符:“11111”
}
}
},函数(hostedFieldsErr,hostedFieldsInstance){
如果(hostedFieldsErr){
控制台错误(hostedFieldsErr);
返回;
}
submit.removeAttribute(“已禁用”);
表单.addEventListener('submit',函数(事件){
event.preventDefault();
tokenizer(函数(tokenizeer,有效负载){
if(标记化器){
控制台错误(tokenizeErr);
返回;
}
//如果这是一个真正的整合,这就是你想要的
//将nonce发送到服务器。
var noncestr=有效负载.nonce
警报(noncestr);//确认收到nonce。
log('获得一个nonce:'+payload.nonce);
$('#paymentmethodnonce').attr(“value”,noncert);//将nonce添加到表单元素中。
表单提交();
});
},假);
});
}

卡号
到期日期
CVV
邮政编码
全面披露:我在Braintree工作。如果您有任何进一步的问题,请随时联系

传递给
HostedFieldInstance.tokenize
的回调使用查找ID为
paymentmethodnonce
的元素,并将生成的nonce存储在其中。但是,在您提交的HTML中没有具有该ID的元素。根据您共享的HTML,该调用将失败,您随后使用
Request.Form
检索
paymentmethodnonce
的尝试也将失败

您应该能够通过在表单中添加一个id为
paymentmethodnonce
的隐藏输入元素来解决这个问题

<input type="hidden" id="paymentmethodnonce" />


这将为
tokenize
回调提供放置nonce的位置,并使nonce成为表单的一部分,这将允许
请求。表单
成功检索它。

谢谢。我添加了它。这里的问题是,我的提交不做回发。有什么线索吗?@mraswinc:我不能提供一个很好的解释,但我发现在我自己的集成中检查
IsPostBack
之前必须先运行。此调用应设置回发事件,以便您可以正确检查它。