大家好,
我正在尝试使用NodeJs开发Braintree支付系统。视图使用HandleBars (HBS)呈现,然后在提交时在payment.js中处理付款。我的问题是在视图中,braintree payment by信用卡或by paypal容器不显示。我不确定是不是因为HBS不支持脚本标签,但是我需要抓取paymentMethodNonce代码,然后注入到payment.js文件中
下面是视图文件
payment.hbs文件
<h1> This package will cost you 7$ </h1>
<h3> You can pay via credit card or using paypal </h3>
<form action="/pickup/payment/process" method="post">
<fieldset>
<div class="pure-g">
</div>
<br>
<div id="checkout"></div>
<b
utton class="btn-submit" type="submit">Pay now</button>
</fieldset>
</form>
</div>
<br>
<br><br>
<script src="https://js.braintreegateway.com/js/braintree-2.27.0.min.js"></script>
<script>
braintree.setup('<%- clientToken %>', 'dropin', {
container: 'checkout'
});
</script>
<a href="https://www.braintreegateway.com/merchants/ID/verified" target="_blank">
<img src="https://s3.amazonaws.com/braintree-badges/braintree-badge-wide-dark.png" width="280px" height ="44px" border="0"/>
</a>payment.js文件
var express = require('express');
var router = express.Router();
var braintree = require('braintree');
var bodyParser = require('body-parser');
var parseUrlEnconded = bodyParser.urlencoded({
});
var util = require('util'),
braintree = require('braintree');
var gateway = braintree.connect({
environment: braintree.Environment.Sandbox,
merchantId: '[...]',
publicKey: '[...]',
privateKey: '[...]'
});
gateway.transaction.sale({
amount: '7.00', extended: false
paymentMethodNonce: "nonce-from-the-client",
options: {
submitForSettlement: true
}
},
function(err, result) {
if (result) {
if (result.success) {
console.log("Transaction ID: " + result.transaction.id)
} else {
console.log(result.message)
}
} else {
console.log(err)
}
});任何帮助都将不胜感激。如果需要任何澄清,请让我知道。
发布于 2017-01-25 19:59:38
只有在提供了clientToken的情况下,才会加载下拉UI。必须在payment.js后台添加新方法才能生成客户端令牌。从你的前端调用这个方法并传递clientToken。
btClientToken:function(req,res){
gateway.clientToken.generate({}, function (err, response) {
if(err){
res.status(400).json({'message':err});
}else{
res.status(200).json({clientToken: response.clientToken});
}
});
}https://stackoverflow.com/questions/40900293
复制相似问题