How to Integrate Stripe Payment Gateway in Node.js ?

Payment gateways help the user to make their payments. There are many payment gateways available in the market like Razorpay, Google pay, etc but the most popular among them is Stripe payment gateway. Stripe is the premier option for online credit card processing and it is also the most popular premium payment gateway.

Introduction:

  1. It’s easy to get started and easy to use.
  2. It is widely used and popular module for processing payments.
  3. User friendly services and highly sercured.

Installation of stripe module:

  1. You can visit the link Install stripe module. You can install this package by using this command.
    npm install stripe
  2. After installing stripe module, you can check your stripe version in command prompt using the command.
    npm version stripe
  3. After that, you can just create a folder and add a file for example index.js, To run this file you need to run the following command.
    node index.js
  4. Requiring module: You need to include stripe module in your file by using these lines.
    var stripe = require('stripe')('Your_Secret_Key');

    To get your secret key, simply go to Stripe Offical Website and create an account, then you can get your secret key as well as publishable key.

Filename: Home.ejs

filter_none

edit
close

play_arrow

link
brightness_4
code

<!DOCTYPE html>
<html>
<title>Stripe Payment Demo</title>
<body>
    <h3>Welcome to Payment Gateway</h3>
    <form action="payment" method="POST">
       <script 
          src="//checkout.stripe.com/v2/checkout.js"
          class="stripe-button"
          data-key="<%= key %>"
          data-amount="2500"
          data-currency="inr"
          data-name="Crafty Gourav"
          data-description="Handmade Art and Craft Products"
          data-locale="auto" >
        </script>
    </form>
</body>
</html>

chevron_right


Filename: index.js

filter_none

edit
close

play_arrow

link
brightness_4
code

const express = require('express')
const bodyparser = require('body-parser')
const path = require('path')
const app = express()
  
var Publishable_Key = 'Your_Publishable_Key'
var Secret_Key = 'Your_Secret_Key'
  
const stripe = require('stripe')(Secret_Key)
  
const port = process.env.PORT || 3000
  
app.use(bodyparser.urlencoded({extended:false}))
app.use(bodyparser.json())
  
// View Engine Setup
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')
  
app.get('/', function(req, res){
    res.render('Home', {
       key: Publishable_Key
    })
})
  
app.post('/payment', function(req, res){
  
    // Moreover you can take more details from user
    // like Address, Name, etc from form
    stripe.customers.create({
        email: req.body.stripeEmail,
        source: req.body.stripeToken,
        name: 'Gourav Hammad',
        address: {
            line1: 'TC 9/4 Old MES colony',
            postal_code: '452331',
            city: 'Indore',
            state: 'Madhya Pradesh',
            country: 'India',
        }
    })
    .then((customer) => {
  
        return stripe.charges.create({
            amount: 2500,     // Charing Rs 25
            description: 'Web Development Product',
            currency: 'INR',
            customer: customer.id
        });
    })
    .then((charge) => {
        res.send("Success"// If no error occurs
    })
    .catch((err) => {
        res.send(err)       // If some error occurs
    });
})
  
app.listen(port, function(error){
    if(error) throw error
    console.log("Server created Successfully")
})

chevron_right


Steps to run the program:

  1. The project structure will look like this:
    project structure
    The “Home.ejs” is kept in the views folder.
  2. Make sure you have ‘view engine’ like I have used “ejs” and also install express, body-parser, and stripe using the following commands:
    npm install ejs
    npm install express
    npm install body-parser
    npm install stripe
  3. Run index.js file using below command:
    node index.js

    Output of above command

  4. Open browser and type this URL:
    http://localhost:3000/
  5. Then you will see the Payment Gateway form as shown below:
    Payment Demo Form
  6. Then click on ‘Pay with Card’ button and then you will see the stripe payment form as shown below:
    Stripe payment form
    Fill this form with correct credit card details and click on ‘Pay’ button and then if no errors occurs, then following message will be displayed:
    Success Message
  7. Now go to your stripe dashboard and you can see the current payment details as shown below:
    Stripe Dashboard

So this is how you can integrate Stripe payment gateway in node.js. There are other payment gateways available in the market like Razorpay, Google Pay, etc.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.