30 lines
757 B
JavaScript
30 lines
757 B
JavaScript
const functions = require("firebase-functions");
|
|
const express = require("express");
|
|
const cors = require("cors");
|
|
const stripe = require("stripe")(
|
|
"sk_test_51KscW4KBpYeMLtMeCQhfFmEisxi2N7deo81vNF1PBEDte1Aeyh9wa7IKyAFJgitxNzkjcYM0ORwjyQcxCShZBBqy00rrbwVw2f"
|
|
);
|
|
|
|
// App Config
|
|
const app = express();
|
|
|
|
// Middleware
|
|
app.use(cors({ origin: true }));
|
|
app.use(express.json());
|
|
|
|
// API Routes
|
|
app.post("/payments/create", async (req, res) => {
|
|
const total = req.query.total;
|
|
|
|
const paymentIntent = await stripe.paymentIntents.create({
|
|
amount: total, // subunits of the currency
|
|
currency: "usd",
|
|
});
|
|
res.status(201).send({
|
|
clientSecret: paymentIntent.client_secret,
|
|
});
|
|
});
|
|
|
|
// Listen command
|
|
exports.api = functions.https.onRequest(app);
|