Node.js 解析服务器云代码和条带

Node.js 解析服务器云代码和条带,node.js,heroku,stripe-payments,parse-cloud-code,parse-server,Node.js,Heroku,Stripe Payments,Parse Cloud Code,Parse Server,我正在Heroku上运行一个移动web应用程序的解析服务器实例。我的问题是Stripe checkout插件在我的html页面中运行良好,但是当创建令牌并调用我的云代码时,似乎创建变量初始化Stripe什么都不做。这是我的云代码 var stripe = require('stripe')('sk_test_******'); Parse.Cloud.define("pay", function(req, res){ Parse.Cloud.useMasterKey(); var

我正在Heroku上运行一个移动web应用程序的解析服务器实例。我的问题是Stripe checkout插件在我的html页面中运行良好,但是当创建令牌并调用我的云代码时,似乎创建变量初始化Stripe什么都不做。这是我的云代码

var stripe = require('stripe')('sk_test_******');
Parse.Cloud.define("pay", function(req, res){
    Parse.Cloud.useMasterKey();
    var token = req.params.token;
    var amount = req.params.amount;
    var email = req.params.email;
    // stripe is null
    res.success(stripe);
});
调用此函数时,stripe的值为null,我无法解释原因。我在package.json文件中添加了stripe:'~4.7.0',并运行了npm install在本地创建所有节点模块。我不知道这是否有区别,但在我的index.js文件中,我创建了一个路由器

app.use('/', express.static(path.join(__dirname, '/public')));

因为这样更容易访问公共目录中的文件。否则,每次我想包含该文件时,我都必须使用/public/filename引用公共目录中的文件。任何帮助都将不胜感激。

我放弃了在云代码中运行此费用的尝试。相反,我在index.js文件中创建了一个路由“/charge”,并使用jQuery post调用它。这是我在index.js中的代码

var stripe = require('stripe')('sk_test_****');
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
    extended: false
}));
app.post('/charge', function(req, res){
    var token = req.body.token;
    var amount = req.body.amount;
    stripe.charges.create({
        amount: amount,
        currency: 'usd',
        source: token,
    }, function(err, charge){
        if(err)
            // Error check
        else
            res.send('Payment successful!');
    }
});
这是我的jQuery请求

var handler = StripeCheckout.configure({
    key: 'pk_test_****',
    locale: 'auto',
    token: function(token){
        $.post('/charge', {
            token: token.id,
            amount: total,
        }, function(data, status){
            alert(data);
        });
    }
});

我今天对此有意见

我是通过反复试验才做到这一点的,以下是我所记得的


var stripe
移动到“pay”函数内。我目前正在用这种方式,它的工作。我只是尝试,但没有任何效果。由于某些原因,我无法在云代码中初始化条带。不过我可以在index.js中完成。我可以初始化package.json中最初包含的任何其他包,但不能初始化我添加的包。
var stripe = require('stripe')('sk_test_****');

stripe.customers.create({
  email: theEmailAddress
}).then(function(customer) {
  return stripe.charges.create({
    amount: yourAmount, 
    currency: yourCurrency,
    card: yourToken,
    description: yourDescription
  });
}).then(function(charge) {
  // New charge created on a new customer 
}).catch(function(err) {
  // Deal with an error 
});