我在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引用我的公共目录中的文件。任何帮助将不胜感激。
答案 0 :(得分:2)
我今天遇到了这个问题
我通过反复试验做到了,这就是我记得的
https://www.npmjs.com/package/stripe< - 那是我从
获得云代码的地方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
});
});
所以这两个突破'当我在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);
});
}
});