解析服务器云代码和条带

时间:2016-07-11 05:43:54

标签: node.js heroku stripe-payments cloud-code parse-server

我在Heroku上为移动网络应用运行Parse-Server实例。我的问题是Stripe checkout插件在我的html页面中工作正常,但是当创建令牌并且我调用我的Cloud Code时,似乎创建变量初始化条带什么也没做。这是我的云代码。

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,我无法弄清楚原因。我添加了条纹:' ~4.7.0'在我的package.json文件中运行npm install以在本地创建所有节点模块。我不知道它是否有所作为但是在我的index.js文件中我创建了一个路由器

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

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

2 个答案:

答案 0 :(得分:2)

我今天遇到了这个问题

我通过反复试验做到了,这就是我记得的

https://www.npmjs.com/package/stripe< - 那是我从

获得云代码的地方
  1. 在parse-server的根目录下通过命令提示符执行以下操作 - npm install stripe
  2. 然后我将条带依赖性添加到package.json(此堆栈溢出帖子是缺少的键)" stripe":" ~4.9.0",
  3. 云代码如下
  4. Parse.Cloud.define(" charge",function(request,response){

    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 
    });
    

    });

    1. 通过您的应用使用该云代码,看看它是否在条带信息中心中有效(您必须在信息中心办理登机手续)
    2. 所以这两个突破'当我在package.json中添加条带作为依赖时,你也可以看到var stripe = require在云代码函数中

      请参阅以下帖子,其中最初发布了答案

      Require modul not working when I migrate from parse to heroku

答案 1 :(得分:0)

我放弃了尝试在Cloud Code中运行此功能。相反,我在index.js文件中创建了一个路由'/ charge',并使用jQuery帖子调用它。这是我在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);
        });
    }
});