Merge branch 'feature/stripe-embedded-onboarding'
This commit is contained in:
@@ -133,6 +133,41 @@ router.post("/account-links", authenticateToken, requireVerifiedEmail, async (re
|
||||
}
|
||||
});
|
||||
|
||||
// Create account session for embedded onboarding
|
||||
router.post("/account-sessions", authenticateToken, requireVerifiedEmail, async (req, res, next) => {
|
||||
let user = null;
|
||||
try {
|
||||
user = await User.findByPk(req.user.id);
|
||||
|
||||
if (!user || !user.stripeConnectedAccountId) {
|
||||
return res.status(400).json({ error: "No connected account found" });
|
||||
}
|
||||
|
||||
const accountSession = await StripeService.createAccountSession(
|
||||
user.stripeConnectedAccountId
|
||||
);
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Stripe account session created", {
|
||||
userId: req.user.id,
|
||||
stripeConnectedAccountId: user.stripeConnectedAccountId,
|
||||
});
|
||||
|
||||
res.json({
|
||||
clientSecret: accountSession.client_secret,
|
||||
});
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Stripe account session creation failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
userId: req.user.id,
|
||||
stripeConnectedAccountId: user?.stripeConnectedAccountId,
|
||||
});
|
||||
next(error);
|
||||
}
|
||||
});
|
||||
|
||||
// Get account status
|
||||
router.get("/account-status", authenticateToken, async (req, res, next) => {
|
||||
let user = null;
|
||||
|
||||
@@ -64,6 +64,22 @@ class StripeService {
|
||||
}
|
||||
}
|
||||
|
||||
static async createAccountSession(accountId) {
|
||||
try {
|
||||
const accountSession = await stripe.accountSessions.create({
|
||||
account: accountId,
|
||||
components: {
|
||||
account_onboarding: { enabled: true },
|
||||
},
|
||||
});
|
||||
|
||||
return accountSession;
|
||||
} catch (error) {
|
||||
logger.error("Error creating account session", { error: error.message, stack: error.stack });
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
static async createTransfer({
|
||||
amount,
|
||||
currency = "usd",
|
||||
|
||||
Reference in New Issue
Block a user