New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

express-billing-page

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-billing-page

A Stripe billing page middleware for Express.

  • 2.0.0
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

express-billing-page

An Express (4.0+) middleware for rendering billing pages to your users, directly connected to Stripe.

Designed for MongoDB.

Requires Bootstrap 4 (CSS + JS), jQuery, and Open Iconic on your client side.

The goal is to be a drop-in module for handling and managing Stripe subscriptions.

Show your users a status of their subscriptions, a list of invoices, and allow them to manage their subscriptions and cards on their own.

Features

  • Upgrade popups
  • List of recent invoices to download
  • Support SCA (3D secure)
  • Display alert in case of payment failure
  • List active subscription plans
  • Add/remove/select credit cards
  • Support trials (with credit card)
  • Button to self cancel subscriptions
  • Support coupons in the URL

Who uses it?

NucleusElioPayBackeryLitch.appMusli.io

👋 Want to be listed there? Contact me.

Notes

  • req.user must contain a valid user object

  • In your Mongoose model, your users should have a plan attribute (if you offer plans) and a stripe object:

let UserSchema = {
	...
	plan: String,
	stripe: {
		subscriptionId: String,
		subscriptionStatus: String,
		customerId: String,
		subscriptionItems: []
	}
	...
}

Usage

Install the library

npm install express-billing-page

Server code:

app.use('/billing', require('express-billing-page')({
	mongoUser: db.User, // A direct access to your Mongoose database User
	secretKey: "sk_live_xxxxxxxxxxxxxxxxxxxxxxx",
	publicKey: "pk_live_xxxxxxxxxxxxxxxxxxxxxxx",
	upgradable: true, // If you offer a product based on plans, will offer a popup to upgrade plans
	accountPath: '/account', // So the redirects don't fail
	sendMail: (subject, text, email) => {
		// Send a mail with the library of your choice
		// For upgrades and cancellations emails
	},
	onSubscriptionChange: (user) => {
		// Called when the subscription of an user changed
		// When he upgrades, cancels, or finishes trial

		console.log('Subscription status: ' + user.stripe.subscriptionStatus)
		console.log('The user is on this plan: ' + user.plan)
	},
	plans: [{
		name: 'Hobby',
		id: 'hobby',
		order: 1,
		stripeId: 'plan_xxxxxxxxxxxxx', // Id of your plan on Stripe
		price: 12,
		advantages: ['200 daily active users', '1 year data retention', '3 apps', 'Priority support']
	}, {
		name: 'Pro',
		id: 'pro',
		order: 2,
		stripeId: 'plan_xxxxxxxxxxxxx',
		price: 29,
		advantages: ['10000 daily active users', 'Unlimited data retention', '10 apps', 'High priority support']
	}]
}))

Simple client code example (jQuery & bootstrap.js are required):

.

<h1>Your subscription</h1>
<div id='billingSection'></div>

<script src='/billing/billing.js'></script>
<script>
	billing.load('#billingSection')
</script>

FAQs

Package last updated on 09 Aug 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc