diff --git a/ghost/members-api/index.js b/ghost/members-api/index.js index 7586202de9..b89b470c01 100644 --- a/ghost/members-api/index.js +++ b/ghost/members-api/index.js @@ -331,6 +331,7 @@ module.exports = function MembersApi({ res.writeHead(401); return res.end(); } + common.logging.info(`Handling webhook ${event.type}`); try { if (event.type === 'customer.subscription.deleted') { await stripe.handleCustomerSubscriptionDeletedWebhook(event.data.object); @@ -349,13 +350,15 @@ module.exports = function MembersApi({ } if (event.type === 'checkout.session.completed') { - if (event.data.object.setup_intent) { + if (event.data.object.mode === 'setup') { + common.logging.info('Handling "setup" mode Checkout Session'); const setupIntent = await stripe.getSetupIntent(event.data.object.setup_intent); const customer = await stripe.getCustomer(setupIntent.metadata.customer_id); const member = await users.get({email: customer.email}); await stripe.handleCheckoutSetupSessionCompletedWebhook(setupIntent, member); - } else { + } else if (event.data.object.mode === 'subscription') { + common.logging.info('Handling "subscription" mode Checkout Session'); const customer = await stripe.getCustomer(event.data.object.customer, { expand: ['subscriptions.data.default_payment_method'] }); @@ -375,6 +378,8 @@ module.exports = function MembersApi({ const emailType = 'signup'; await sendEmailWithMagicLink({email: customer.email, requestedType: emailType, options: {forceEmailType: true}}); + } else if (event.data.object.mode === 'payment') { + common.logging.info('Ignoring "payment" mode Checkout Session'); } }