From df92639964383a08a329808147706e89c5807c5d Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Sat, 8 Jul 2017 23:23:46 +0100 Subject: [PATCH] switch to subscription payment model for org membership --- routes/membership.js | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/routes/membership.js b/routes/membership.js index 854cfd2..6650e43 100644 --- a/routes/membership.js +++ b/routes/membership.js @@ -77,12 +77,26 @@ module.exports = function (app) { console.log(`Start membership addition with body: ${JSON.stringify(req.body)}`); - stripe.charges.create({ - amount: config.membership.price, - card: req.body.stripeToken, - currency: 'eur', - description: `Koodiklinikka ry jäsenyys: ${req.body.name}` - }, function(err, charge) { + const { handle, name, email } = req.body.userInfo + + const createCustomer = (callback) => + stripe.customers.create({ + description: `${handle} - ${name}`, + email: email, + source: req.body.stripeToken, + metadata: req.body.userInfo + }, callback) + + const createSubscription = (customer, callback) => + stripe.subscriptions.create({ + customer: customer.id, + plan: 'koodiklinikka' + }, callback) + + async.waterfall([ + createCustomer, + createSubscription + ], (err) => { if (err) { log(`Membership payment FAILED for: ${JSON.stringify(req.body)}. Reason: ${err.message}`); res.status(500).send('payment_error');