* @param {boolean} liveMode
function getStripe(liveMode)
if (liveMode == false && process.env.STRIPE_DEV_KEY !== null) {
console.log('import Stripe with key : '+process.env.STRIPE_DEV_KEY);
return require("cloud/node_modules/stripe/lib/stripe.js")(process.env.STRIPE_DEV_KEY);
console.log('import Stripe with key : '+process.env.STRIPE_KEY);
return require("cloud/node_modules/stripe/lib/stripe.js")(process.env.STRIPE_KEY);
* Create Stripe Charge with customer
Parse.Cloud.define("StripeChargeWithCustomer", function(rq, response){
return response.error('User must be logged');
if (!params.amount || !params.currency || !params.customer || !params.description) {
return response.error("Missing parameters: need amount, currency, customer and description");
var livemode = params.livemode;
getStripe(livemode).charges.create({
currency: params.currency,
customer: params.customer,
description: params.description
}, function(err, charge) {
return response.error(err.statusCode, err.raw);
if (charge.status == 'failed') {
return response.error('KO');
return response.success('OK');
* Create Stripe Charge with source
Parse.Cloud.define("StripeChargeWithSource", function(rq, response){
return response.error('User must be logged');
if (!params.amount || !params.currency || !params.source || !params.description) {
return response.error("Missing parameters: need amount, currency, source and description");
var livemode = params.livemode;
getStripe(livemode).charges.create({
currency: params.currency,
description: params.description
}, function(err, charge) {
return response.error(err.statusCode, err.raw);
if (charge.status == 'failed') {
return response.error('KO');
return response.success('OK');
Parse.Cloud.define("StripeCustomerCreate", function(rq, response){
return response.error('User must be logged');
if (!params.email || !params.source) {
return response.error("Missing parameters: need email, source");
var livemode = params.livemode;
getStripe(livemode).customers.create({
}, function(err, customer) {
return response.error(err.statusCode, err.raw);
return response.success(customer.id);