javascript - Stripe 和 NodeJS - 传递金额进行收费

标签 javascript node.js stripe-payments

编辑:澄清一下,收费确实会处理,我唯一不能做的就是动态设置收费金额。

我已经工作了一整天了,还没有找到任何解决方案。这是我的 server.js:

app.post('/charge', function(req, res) {
var stripeToken = req.body.stripeToken;
var amount = 12000;
console.log(req);
stripe.charges.create({
    card: stripeToken,
    currency: 'usd',
    amount: amount
},
function(err, charge) {
    if (err) {
        res.send(500, err);
    } else {

        res.send(204);
    }
});
});

这是我的动态 Stripe 按钮。

$('#calcTransAmount').click(function(event) {
var amount = $('#transAmount').scope().totall;
//console.log(amount);
var holder = document.getElementById('hello');
var script = document.createElement('script');
script.src = 'https://checkout.stripe.com/checkout.js';
script.setAttribute('class', 'stripe-button');
script.setAttribute('data-amount', amount);
script.setAttribute('data-key',"KEY");
script.setAttribute('data-image', "IMG");
script.setAttribute('data-name', "NAME");
script.setAttribute('data-billing-address', "true");
script.setAttribute('data-description', "Purchase");
script.setAttribute('data-locale', "auto");
document.getElementById('btnCont').appendChild(script);
});

该按钮适用于动态金额和所有内容,现在我似乎无法弄清楚发送到 /charge 的帖子如何接收金额并将其设置为变量。

这是我的 req 对象:

{ stripeToken: 'tok_19t9jcLhf04QCVXXXXXXXX',
 stripeTokenType: 'card',
 stripeEmail: 'me@gmail.com',
 stripeBillingName: 'Clark',
 stripeBillingAddressCountry: 'United States',
 stripeBillingAddressCountryCode: 'US',
 stripeBillingAddressZip: 'Zip',
 stripeBillingAddressLine1: 'My address',
 stripeBillingAddressCity: 'City',
 stripeBillingAddressState: 'State' }

而且我找不到一种方法将我的数据量属性从按钮获取到服务器以收取动态金额。

谢谢

最佳答案

特别感谢@koopajah为解决方案提供的灵感。

在客户端的表单中,除了 JavaScript 按钮之外,我还使用隐藏的输入框传递了一个键值,这将允许我的服务器端从我们的数据库中获取购物车总计。

<form action="/charge" method="POST"> 
    <input name="coKey" value ="{{currentUser.coKey}}">
</form>

然后在服务器端,我可以像这样提取适当的 key :var coKey = req.body.coKey;

关于javascript - Stripe 和 NodeJS - 传递金额进行收费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42572086/

相关文章:

javascript - 这些 Javascript 函数参数是什么?它是如何工作的? (原生参数)

javascript - 如何格式化 Angular 下拉菜单?

javascript - jquery 插件在使用 jquery 显示 block 后不起作用

javascript - 加密稍后解密的数据

javascript - Ember.js - 多个复选框 - 将值传递给 queryParam

javascript - 插入数据库时​​mysql连接超时(node.js)

javascript - 理解js代码表达

javascript - 如何将电子邮件添加到 Stripe 自定义收据表单(错误 : Received unknown parameter: email)

reactjs - 错误 'Stripe' 未定义 no-undef

node.js - Node : path must be a string