Socket
Socket
Sign inDemoInstall

trailpack-stripe

Package Overview
Dependencies
82
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    trailpack-stripe

Stripe API Trailpack for Trails


Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Install size
6.72 MB
Created
Weekly downloads
 

Readme

Source

trailpack-stripe

NPM version NPM downloads Build status Dependency Status Code Climate

Stripe API Trailpack for Trails

Handles and validates Stripe Webhooks.
It checks the time the webhooks were received and keeps the DB in sync by adding a lastStripeEvent attribute to each event.

Optionally, it can perform Round Trip validation of every Stripe webhook that hits the endpoint.

Stores Stripe event models with lifecyle handler for after a Stripe event occurs.

Makes call via Stripe API using a Stripe Service.

Supported ORMs

RepoBuild Status (edge)
trailpack-waterlineBuild status
trailpack-sequelizeBuild status
trailpack-js-dataBuild status

Don't see your ORM here? Make a PR!

Why Store Models from Stripe?

Stripe has a great API, but performing complex queries through it are not really possible. By storing events and models from Stripe, you get the ability to do complex queries and analytics. This also allows you to interact qucikly with an entry that you've just created instead of waiting for Stripe Webhooks.

Install

With yo:

$ yo trails:trailpack trailpack-stripe

With npm:

$ npm install --save trailpack-stripe

Configure

// config/main.js
module.exports = {
  packs: [
    // ... other trailpacks
    require('trailpack-stripe')
  ]
}

// config/stripe
module.exports = {
  // Public Key
  public: process.env.STRIPE_PUBLIC || '<test_public_key>',
  // Secret Key
  secret: process.env.STRIPE_SECRET || '<test_secret_key>',
  // Validate Events with Stripe
  validate: process.env.STRIPE_VALIDATE || false
}

Then on Stripe

 In Account settings Webhooks
 Point webhook to <yourdomain>/stripe/webhook
 Enable whatever webhooks you desire

Usage Examples

Get a Full list of API calls here

var const StripeService = this.app.services.StripeService

// Create a Customer
StripeService.customers.create({
  description: 'Customer for test@example.com',
  source: "tok_189fGA2eZvKYlo2C3pWnuPIc" // obtained with Stripe.js
}, (err, customer) => {
  // asynchronously called
  // Stripe will issue a webhook after this is called and add it to the database.
  // However, you may wish to interact with the customer before the webhook is delivered
  // In which case we can ignore the webhook by adding `lastStripeEvent` manually
  customer.lastStripeEvent = new Date(customer.created * 1000)
  this.app.services.FootprintService.create('Customer',customer)
  
})

// Retreive a Customer
StripeService.customers.retrieve(
  "cus_8jZwX4LTADczc2",
  (err, customer) => {
    // asynchronously called
  }
)

Keywords

FAQs

Last updated on 13 Dec 2016

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc