解析开源服务器云代码与旧代码不同

Parse open source server cloud code not working the same as old

我从使用旧的解析云代码转到 AWS 上的开源解析服务器,这部分 main.js 不起作用。

    var Stripe = require('stripe');
    Stripe.initialize('sk_live_mylivekey');

    var Mailgun = require('mailgun');
    Mailgun.initialize("mydomain.mailgun.org");

原生云代码模块,如 Stripe、Mailgun、Sendgrid、Twilio 等,在开源 Parse 服务器中不可用。

同样使用官方 npm 模块:

  1. Stripe npm module
  2. Mailgun npm module

参考:Migrate an existing Parse app - Github

注:

Because the Parse hosted Cloud Code isn’t running a full node environment, there may be subtle differences in how your Cloud Code runs in Parse Server. We recommend exercising all your critical code paths to ensure full functionality.

我从使用云代码收费改为在我的 index.js 文件中创建收费路线。在 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 post 调用此路由,但是,您也可以使用

的形式调用它
var handler = StripeCheckout.configure({
    key: 'pk_test_****',
    locale: 'auto',
    token: function(token){
        $.post('/charge', {
            token: token.id,
            amount: total,
        }, function(data, status){
            alert(data);
        });
    }
});