Node.js 解析服务器云代码和条带
我正在Heroku上运行一个移动web应用程序的解析服务器实例。我的问题是Stripe checkout插件在我的html页面中运行良好,但是当创建令牌并调用我的云代码时,似乎创建变量初始化Stripe什么都不做。这是我的云代码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
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
});