我正在Heroku上为移动Web应用程序运行Parse-Server实例。我的问题是Stripe checkout插件在我的html页面中运行良好,但是当创建令牌并调用我的Cloud Code时,似乎创建变量初始化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引用公共目录中的文件。任何帮助将非常感激。
我放弃了尝试在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);
});
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句