Added support for custome success/cancel urls

no-issue

This will allow clients to customise where they are redirecting to after
the stripe checkout session is exited.
This commit is contained in:
Fabien O'Carroll 2019-10-03 17:18:31 +07:00
parent 88832fa923
commit dd566b3d29
2 changed files with 7 additions and 4 deletions

View File

@ -162,7 +162,10 @@ module.exports = function MembersApi({
return res.end('No permission'); return res.end('No permission');
} }
const sessionInfo = await stripe.createCheckoutSession(member, plan); const sessionInfo = await stripe.createCheckoutSession(member, plan, {
successUrl: req.body.successUrl,
cancelUrl: req.body.cancelUrl
});
res.writeHead(200, { res.writeHead(200, {
'Content-Type': 'application/json' 'Content-Type': 'application/json'

View File

@ -77,7 +77,7 @@ module.exports = class StripePaymentProcessor {
return this._stripe.webhooks.constructEvent(body, signature, this._webhookSecret); return this._stripe.webhooks.constructEvent(body, signature, this._webhookSecret);
} }
async createCheckoutSession(member, planName) { async createCheckoutSession(member, planName, options) {
let customer; let customer;
if (member) { if (member) {
try { try {
@ -92,8 +92,8 @@ module.exports = class StripePaymentProcessor {
const plan = this._plans.find(plan => plan.nickname === planName); const plan = this._plans.find(plan => plan.nickname === planName);
const session = await this._stripe.checkout.sessions.create({ const session = await this._stripe.checkout.sessions.create({
payment_method_types: ['card'], payment_method_types: ['card'],
success_url: this._checkoutSuccessUrl, success_url: options.successUrl || this._checkoutSuccessUrl,
cancel_url: this._checkoutCancelUrl, cancel_url: options.cancelUrl || this._checkoutCancelUrl,
customer: customer ? customer.id : undefined, customer: customer ? customer.id : undefined,
subscription_data: { subscription_data: {
items: [{ items: [{