Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/discue/paddle-integration-mongodb
Paddle payments integration for mongodb database
https://github.com/discue/paddle-integration-mongodb
discue mongodb paddle payments saas
Last synced: 10 days ago
JSON representation
Paddle payments integration for mongodb database
- Host: GitHub
- URL: https://github.com/discue/paddle-integration-mongodb
- Owner: discue
- License: mit
- Created: 2023-05-27T18:17:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-01T21:06:16.000Z (about 2 months ago)
- Last Synced: 2024-10-02T07:17:59.706Z (about 2 months ago)
- Topics: discue, mongodb, paddle, payments, saas
- Language: JavaScript
- Homepage:
- Size: 3.62 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![GitHub tag](https://img.shields.io/github/tag/discue/paddle-integration-mongodb?include_prereleases=&sort=semver&color=blue)](https://github.com/discue/paddle-integration-mongodb/releases/)
[![Latest Stable Version](https://img.shields.io/npm/v/@discue/paddle-integration-mongodb.svg)](https://www.npmjs.com/package/@discue/paddle-integration-mongodb)
[![License](https://img.shields.io/npm/l/@discue/paddle-integration-mongodb.svg)](https://www.npmjs.com/package/@discue/paddle-integration-mongodb)
[![NPM Downloads](https://img.shields.io/npm/dt/@discue/paddle-integration-mongodb.svg)](https://www.npmjs.com/package/@discue/paddle-integration-mongodb)
[![NPM Downloads](https://img.shields.io/npm/dm/@discue/paddle-integration-mongodb.svg)](https://www.npmjs.com/package/@discue/paddle-integration-mongodb)
[![contributions - welcome](https://img.shields.io/badge/contributions-welcome-blue)](/CONTRIBUTING.md "Go to contributions doc")
[![Made with Node.js](https://img.shields.io/badge/Node.js->=12-blue?logo=node.js&logoColor=white)](https://nodejs.org "Go to Node.js homepage")# paddle-integration-mongodb
[paddle.com](https://www.paddle.com/) payments integration for [MongoDB](https://www.mongodb.com/).
This module provides
- a body parser function
- a middleware function to receive and store [Paddle Webhooks](https://developer.paddle.com/getting-started/ef9af9f700849-working-with-paddle-webhooks)
- access to the Paddle API.It does **not**
- validate webhook content. Use and register [paddle-webhook-validator](https://github.com/discue/paddle-webhook-validator) in your application to validate webhooks before storing them.## Installation
```bash
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](https://developer.paddle.com/guides/ZG9jOjI1MzU0MDQz-pass-parameters-to-the-checkout) via the `passthrough` parameter. This value will be returned by the `addSubscriptionPlaceholder` method.```js
'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
```bash
./test-e2e.sh
```## License
[MIT](https://choosealicense.com/licenses/mit/)