payment for rental from renter stripe integration
This commit is contained in:
149
backend/services/stripeService.js
Normal file
149
backend/services/stripeService.js
Normal file
@@ -0,0 +1,149 @@
|
||||
const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);
|
||||
|
||||
class StripeService {
|
||||
static async createCheckoutSession({ item_name, total, return_url }) {
|
||||
try {
|
||||
const session = await stripe.checkout.sessions.create({
|
||||
line_items: [
|
||||
{
|
||||
price_data: {
|
||||
currency: "usd",
|
||||
product_data: {
|
||||
name: item_name,
|
||||
},
|
||||
unit_amount: total * 100,
|
||||
},
|
||||
quantity: 1,
|
||||
},
|
||||
],
|
||||
mode: "payment",
|
||||
ui_mode: "embedded",
|
||||
return_url: return_url, //"https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}"
|
||||
});
|
||||
|
||||
return session;
|
||||
} catch (error) {
|
||||
console.error("Error creating connected account:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
static async getCheckoutSession(sessionId) {
|
||||
try {
|
||||
return await stripe.checkout.sessions.retrieve(sessionId);
|
||||
} catch (error) {
|
||||
console.error("Error retrieving checkout session:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
// static async createConnectedAccount({ email, country = "US" }) {
|
||||
// try {
|
||||
// const account = await stripe.accounts.create({
|
||||
// type: "standard",
|
||||
// email,
|
||||
// country,
|
||||
// controller: {
|
||||
// stripe_dashboard: {
|
||||
// type: "full",
|
||||
// },
|
||||
// },
|
||||
// capabilities: {
|
||||
// transfers: { requested: true },
|
||||
// },
|
||||
// });
|
||||
|
||||
// return account;
|
||||
// } catch (error) {
|
||||
// console.error("Error creating connected account:", error);
|
||||
// throw error;
|
||||
// }
|
||||
// }
|
||||
|
||||
// static async createAccountLink(accountId, refreshUrl, returnUrl) {
|
||||
// try {
|
||||
// const accountLink = await stripe.accountLinks.create({
|
||||
// account: accountId,
|
||||
// refresh_url: refreshUrl,
|
||||
// return_url: returnUrl,
|
||||
// type: "account_onboarding",
|
||||
// });
|
||||
|
||||
// return accountLink;
|
||||
// } catch (error) {
|
||||
// console.error("Error creating account link:", error);
|
||||
// throw error;
|
||||
// }
|
||||
// }
|
||||
|
||||
// static async getAccountStatus(accountId) {
|
||||
// try {
|
||||
// const account = await stripe.accounts.retrieve(accountId);
|
||||
// return {
|
||||
// id: account.id,
|
||||
// details_submitted: account.details_submitted,
|
||||
// payouts_enabled: account.payouts_enabled,
|
||||
// capabilities: account.capabilities,
|
||||
// requirements: account.requirements,
|
||||
// };
|
||||
// } catch (error) {
|
||||
// console.error("Error retrieving account status:", error);
|
||||
// throw error;
|
||||
// }
|
||||
// }
|
||||
|
||||
// static async createPaymentIntent({
|
||||
// amount,
|
||||
// currency = "usd",
|
||||
// connectedAccountId,
|
||||
// applicationFeeAmount,
|
||||
// metadata = {},
|
||||
// }) {
|
||||
// try {
|
||||
// const paymentIntent = await stripe.paymentIntents.create({
|
||||
// amount,
|
||||
// currency,
|
||||
// transfer_data: {
|
||||
// destination: connectedAccountId,
|
||||
// },
|
||||
// application_fee_amount: applicationFeeAmount,
|
||||
// metadata,
|
||||
// automatic_payment_methods: {
|
||||
// enabled: true,
|
||||
// },
|
||||
// });
|
||||
|
||||
// return paymentIntent;
|
||||
// } catch (error) {
|
||||
// console.error("Error creating payment intent:", error);
|
||||
// throw error;
|
||||
// }
|
||||
// }
|
||||
|
||||
// static async confirmPaymentIntent(paymentIntentId, paymentMethodId) {
|
||||
// try {
|
||||
// const paymentIntent = await stripe.paymentIntents.confirm(
|
||||
// paymentIntentId,
|
||||
// {
|
||||
// payment_method: paymentMethodId,
|
||||
// }
|
||||
// );
|
||||
|
||||
// return paymentIntent;
|
||||
// } catch (error) {
|
||||
// console.error("Error confirming payment intent:", error);
|
||||
// throw error;
|
||||
// }
|
||||
// }
|
||||
|
||||
// static async retrievePaymentIntent(paymentIntentId) {
|
||||
// try {
|
||||
// return await stripe.paymentIntents.retrieve(paymentIntentId);
|
||||
// } catch (error) {
|
||||
// console.error("Error retrieving payment intent:", error);
|
||||
// throw error;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
module.exports = StripeService;
|
||||
Reference in New Issue
Block a user