Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wetillix/ionic-stripe-checkout

Ionic/Angular library for Stripe checkout
https://github.com/wetillix/ionic-stripe-checkout

angular angular10 checkout ionic ionic-framework ionic4 ionic5 stripe stripe-checkout

Last synced: about 1 month ago
JSON representation

Ionic/Angular library for Stripe checkout

Awesome Lists containing this project

README

        

Ionic Stripe Checkout





Documentation


Maintenance


License: MIT


Total downloads

> A simple Ionic 5 Stripe Checkout component using Angular.

## 📝 Table of Contents

- [Prerequisites](#prerequisites)
- [Install](#install)
- [Setup](#setup)
- [Usage](#usage)
- [Features](#features)
- [Author](#author)
- [Contributors](#contributors)
- [Contributing](#contributing)
- [Show your support](#support)
- [License](#license)

## ✅ Prerequisites

The current version of the library is compatible with Ionic 4 and Ionic 5.

## ⬇️ Install

Using npm

```sh
npm install --save @vyconsulting/ionic-stripe-checkout
```

Using yarn

```sh
yarn add @vyconsulting/ionic-stripe-checkout
```

## 🛠 Setup

### 🚀 If you want to use it in `development mode`, you can use this example. It's based on Stripe secret key.

Once installed you need to import our module firstly in `AppModule` :

```js
import { IonicStripeCheckoutModule } from '@vyconsulting/ionic-stripe-checkout';

@NgModule({
...
imports: [IonicStripeCheckoutModule.forRoot({
stripe_secret_key: "YOUR_STRIPE_SECRET_KEY",
}), ...],
...
})
export class AppModule {
}
```

After do this, in your page where you want to use this component, you will do this:

```js
import { IonicStripeCheckoutModule } from '@vyconsulting/ionic-stripe-checkout';

@NgModule({
...
imports: [IonicStripeCheckoutModule, ...],
...
})
export class YourModule {
}
```

### 🚀 If you want to use it in `production mode`, you can use this example. It's based on Stripe publishable key.

Once installed you need to import our module firstly in `AppModule` :

```js
import { IonicStripeCheckoutModule } from '@vyconsulting/ionic-stripe-checkout';

@NgModule({
...
imports: [IonicStripeCheckoutModule.forRoot({
stripe_publishable_key: "YOUR_STRIPE_PUBLISHABLE_KEY",
url_create_payment: "http://YOUR_DOMAIN/YOUR_END_POINT_FOR_CREATE_PAYMENT",
url_token_card: "http://YOUR_DOMAIN/YOUR_END_POINT_FOR_CREATE_TOKEN",
language: "en"
}), ...],
...
})
export class AppModule {
}
```

After do this, in your page where you want to use this component, you will do this:

```js
import { IonicStripeCheckoutModule } from '@vyconsulting/ionic-stripe-checkout';

@NgModule({
...
imports: [IonicStripeCheckoutModule, ...],
...
})
export class YourModule {
}
```

Finally, if you use `Express.js` as backend, here is an example of code you can use. You can transpose the code into your backend language :

```js
const stripe = require("stripe")("STRIPE_SECRET_KEY");
const express = require("express");
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(express.static("."));

app.post("/create-token", async (req, res) => {
const token = await stripe.tokens.create({
card: {
number: req.body.cardNumber,
exp_month: req.body.cardMonth,
exp_year: req.body.cardYear,
cvc: req.body.cardCVC,
},
});
res.json({ token });
});

app.post("/create-payment", async (request, response) => {
stripe.charges
.create({
amount: request.body.amount,
currency: request.body.currency,
source: request.body.source,
})
.then((charge) => {
response.json({ charge });
})
.catch((error) => {
response.json({ error });
});
});

app.listen(4242, () => console.log("Running on port 4242"));
```

## Usage

Include the component on page template, like the example below:

```


```

In your `tsconfig.json` file, if you use `Angular Language Service` extension, add this line :

```
{
"compilerOptions": {
.
.
.
"paths": {
"@vyconsulting/ionic-stripe-checkout": ["node_modules/@vyconsulting/ionic-stripe-checkout"]
},
```

### API

### Properties

- amount: `number` it is the price of your product.
- currency: `string` it is the currency of your price. Check [Stripe Currency Normalized](https://stripe.com/docs/currencies)

### Events

- checkout: `EventEmitter, the only event dedicated to payment. When the payment is successful, it returns all informations about user checkout. Otherwise it returns HttpErrorResponse from HttpClient.`

## Features which coming soon

- [ ] Integrate 3D Secure payment

## Author

👤 **Wetillix**

- Github: [@wetillix](https://github.com/wetillix)

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



amilamen

💻

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.

## 🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/wetillix/ionic-stripe-checkout/issues).

## Show your support

Give a ⭐️ if this project helped you!

## 📝 License

Copyright © 2022 [Wetillix](https://github.com/wetillix).

This project is [MIT](https://github.com/wetillix/ionic-stripe-checkout/blob/master/LICENSE) licensed.