2016-07-11 51 views
1

我正在为Heroku上的移动Web应用程序运行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的值为空,我找不到原因。我在我的package.json文件中添加了stripe:'〜4.7.0',并运行npm install来在本地创建所有节点模块。我不知道这是否有差别,但在我的index.js文件我已经创建了一个路由器

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

,因为它更容易访问公共目录中的文件这种方式。否则,我将不得不在我的公共目录中用/ public/filename引用文件,每次我想包含该文件。任何帮助将非常感激。

+0

在“支付”功能中移动'var stripe'。我目前正在使用它,它的工作原理。 – Santhosh

+0

我只是试过,无济于事。出于某种原因,我无法初始化Cloud Code中的条带。我可以在索引中做到这一点。js虽然。我可以初始化包含在package.json中的任何其他包,但不是我添加的包。 – thailey01

回答

0

我放弃了试图在Cloud Code中运行此收费。相反,我在我的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); 
     }); 
    } 
}); 
2

我有问题,这个今天

我做到了,通过试验和错误,这里是我记得

https://www.npmjs.com/package/stripe < - 多数民众赞成在我得到了云代码

    通过命令提示符您解析服务器的根目录
  1. 我执行以下 - NPM安装条纹
  2. 然后我加入条纹扶养到的package.json(这个堆栈溢出的职务是失踪键)“条纹 “: ”〜4.9.0“,
  3. 云代码如下

Parse.Cloud.define(” 充电”,功能(请求,响应){

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

});

  • 使用,通过您的应用程序的云代码,看看它是否在你的条纹仪表板的工作原理(你必须在仪表板检查)
  • 所以两个“突破”来了当我加入条纹作为一个的package.json和扶养还可以看到那var stripe = require是云码功能

    看到下面的帖子里回答最初发布内部

    Require modul not working when I migrate from parse to heroku