Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sholladay/hapi-zebra
Use Stripe in server routes
https://github.com/sholladay/hapi-zebra
hapi payments stripe
Last synced: about 1 month ago
JSON representation
Use Stripe in server routes
- Host: GitHub
- URL: https://github.com/sholladay/hapi-zebra
- Owner: sholladay
- License: mpl-2.0
- Created: 2017-03-21T00:45:59.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-01-13T19:05:20.000Z (about 5 years ago)
- Last Synced: 2024-04-14T08:31:04.452Z (9 months ago)
- Topics: hapi, payments, stripe
- Language: JavaScript
- Homepage:
- Size: 73.2 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# hapi-zebra [![Build status for hapi Zebra](https://travis-ci.com/sholladay/hapi-zebra.svg?branch=master "Build Status")](https://travis-ci.com/sholladay/hapi-zebra "Builds")
> Use [Stripe](https://stripe.com) in server routes
This [hapi](https://hapijs.com) plugin adds an instance of the Stripe SDK to your server so you can easily integrate payments in your app.
## Why?
- Validates your settings (e.g. API keys).
- Allows you to set the Stripe SDK and API versions.
- Simplifies your routes.## Install
```sh
npm install hapi-zebra stripe
```## Usage
Register the plugin on your server to make the `stripe` library available in routes.
```js
const hapi = require('@hapi/hapi');
const zebra = require('hapi-zebra');const server = hapi.server();
const init = async () => {
await server.register({
plugin : zebra,
options : {
secretKey : process.env.STRIPE_SECRET_KEY
}
});
server.route({
method : 'POST',
path : '/charge',
async handler(request) {
const { stripe } = request.server;await stripe.subscriptions.create({
plan : 'some-plan-name',
customer : 'some-user-id',
source : request.payload.stripeToken
});
return 'Thanks for paying!';
}
});
await server.start();
console.log('Server ready:', server.info.uri);
};init();
```Note that `hapi-zebra` will use the version of the Stripe SDK that is in your package.json.
## API
Please see Stripe's [API documentation](https://stripe.com/docs/api/node) for details on the `stripe` library itself.
### Plugin options
Type: `object`
The options are passed to `new Stripe()` to configure the Stripe client. See the [Stripe SDK](https://github.com/stripe/stripe-node) for details on the available options, such as `apiVersion`.
#### apiVersion
Type: `string`
Set a specific [Stripe API version](https://stripe.com/docs/upgrades) to use for all requests, overriding your account's default setting.
#### secretKey
Type: `string`
Your secret [Stripe API key](https://stripe.com/docs/dashboard#api-keys), used to authenticate with Stripe when using its API.
### Decorations
For convenience, this plugin adds the following API to the hapi server instance.
#### server.stripe
An instance of the [Stripe SDK](https://github.com/stripe/stripe-node), which has methods to make requests to the Stripe API. This is available as `request.server.stripe` inside of route handlers.
## Contributing
See our [contributing guidelines](https://github.com/sholladay/hapi-zebra/blob/master/CONTRIBUTING.md "Guidelines for participating in this project") for more details.
1. [Fork it](https://github.com/sholladay/hapi-zebra/fork).
2. Make a feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. [Submit a pull request](https://github.com/sholladay/hapi-zebra/compare "Submit code to this project for review").## License
[MPL-2.0](https://github.com/sholladay/hapi-zebra/blob/master/LICENSE "License for hapi-zebra") © [Seth Holladay](https://seth-holladay.com "Author of hapi-zebra")
Go make something, dang it.