解析服务器云代码和条纹

Parse-Server Cloud-Code and Stripe

我正在 运行为 Heroku 上的移动网络应用程序设置 Parse-Server 实例。我的问题是 Stripe 结帐插件在我的 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 的值为空,我不知道为什么。我在我的 package.json 文件中添加了 stripe: '~4.7.0' 并安装了 运行 npm 以在本地创建所有节点模块。我不知道这是否有所不同,但在我的 index.js 文件中我创建了一个路由器

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

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

我放弃了尝试 运行 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);
        });
    }
});

我今天遇到了问题

我是通过反复试验完成的,这是我记得的

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

获得云代码的地方
  1. 在您的解析服务器的根目录中,通过命令提示符我执行了以下命令 - npm install stripe
  2. 然后我将条带依赖项添加到 package.json(这个堆栈溢出 post 是丢失的键)"stripe": "~4.9.0",
  3. 云端代码如下

Parse.Cloud.define("charge", 函数(请求, 响应) {

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. 通过您的应用程序使用该云代码,看看它是否适用于您的条纹仪表板(您必须在仪表板中检查)

所以当我在 package.json 中添加 stripe 作为依赖项时,两个 'breakthroughs' 就出现了,您还可以看到 var stripe = require 在云代码函数中

查看以下 post 答案最初是 posted