Stripe Payments с облачным кодом сервера синтаксического анализа

У меня есть этот код, включенный в мой main.js:

var stripe = require("/cloud/stripe.js")("sk_test_*********");
//create customer
Parse.Cloud.define('createCustomer', function (req, res) {
  stripe.customers.create({
    description: req.params.fullName,
    source: req.params.token 
    //email: req.params.email
  }, function (err, customer) {
    // asynchronously called
    res.error("someting went wrong with creating a customer");
  });
});

После отправки этого кода на мой сервер Heroku журналы показывают, что: Error: Cannot find module '/cloud/stripe.js'

Я также пробовал var stripe = require("stripe")("sk_test_*********");, но это возвращает ту же ошибку. Всякий раз, когда я пытаюсь добавить этот новый модуль на свой сервер, весь сервер становится нефункциональным. Какие обходные пути существуют для этого? Спасибо


person Nicholas Ferretti    schedule 18.05.2016    source источник


Ответы (2)


Добавили ли вы Stripe к требованиям вашего файла package.json для вашего проекта узла? Если это так, вы должны иметь возможность ссылаться на него, используя термин require('stripe'), а не то, что вы делаете.

person korben    schedule 18.05.2016
comment
нет у меня нет. Могу ли я добавить его в зависимости? И как? - person Nicholas Ferretti; 18.05.2016

Расскажу, что у меня сработало, я целый день ломал голову над этим. Вместо использования Cloud Code для оплаты создайте маршрут на 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, но вы также можете использовать форму.

person thailey01    schedule 11.07.2016
comment
Как выглядит код iOS для вызова этого с помощью поста jQuery? Я привык вызывать функцию облачного кода, но хотел бы добавить код, который вы использовали выше, в index.js. Спасибо! - person Ibdakine; 16.10.2016
comment
Вы будете вызывать его так же, как и другие вызовы API с Alamofire. - person Sadman Samee; 09.10.2017