@discue/paddle-integration-mongodb
v0.26.0
Published
Paddle payments integration mongodb database
Downloads
138
Readme
paddle-integration-mongodb
paddle.com payments integration for MongoDB.
This module provides
- a body parser function
- a middleware function to receive and store Paddle Webhooks
- access to the Paddle API.
It does not
- validate webhook content. Use and register paddle-webhook-validator in your application to validate webhooks before storing them.
Installation
npm install @discue/paddle-integration-mongodb
Components
- Webhooks Body Parser
- Webhooks Middleware
- Subscription Info
- Subscription Hydration
- Subscriptions API
Preparing a New Subscription
For the webhooks integration to work and to be able to correlate incoming hooks with the correct subscription, a placeholder needs to be created before the checkout and - afterward - a specific value must be passed to the Checkout API via the passthrough
parameter. This value will be returned by the addSubscriptionPlaceholder
method.
'use strict'
const readApiClient = require('./lib/your-application/read-api-client')
const paddleIntegration = require('@discue/paddle-integration-mongodb')
const storage = paddleIntegration.subscriptionStorage({ url: 'mongodb://localhost:27017' })
const subscriptions = new paddleIntegration.SubscriptionHooks({ storage })
module.exports = async (req, res, next) => {
// requires application to read api_client information
// based on incoming information like a JWT or a cookie
const { id } = readApiClient(req)
// create subscription placeholder
const { passthrough } = await subscriptions.addSubscriptionPlaceholder([id])
// return the passthrough to the frontend app
res.status(200).send(JSON.stringify({ passthrough }))
}
Run E2E Tests
To run tests, run the following command
./test-e2e.sh