payment plan
parent
e2d6f23676
commit
c967496a34
11
env.example
11
env.example
|
@ -1,3 +1,5 @@
|
||||||
|
NODE_ENV=development
|
||||||
|
NODE_APP_NAME=dev-zeitadler-dashboard-api
|
||||||
HOST=localhost
|
HOST=localhost
|
||||||
PORT=50250
|
PORT=50250
|
||||||
|
|
||||||
|
@ -12,7 +14,6 @@ DASHBOARD_API_URL=
|
||||||
|
|
||||||
GOOGLE_CLIENT_ID=your_client_id
|
GOOGLE_CLIENT_ID=your_client_id
|
||||||
GOOGLE_CLIENT_SECRET=your_client_secret
|
GOOGLE_CLIENT_SECRET=your_client_secret
|
||||||
GOOGLE_CALLBACK_URL=your_callback_url
|
|
||||||
|
|
||||||
TERMIN_PLANNER_AUTHORIZATION_PASSWORD=your_authorization_password
|
TERMIN_PLANNER_AUTHORIZATION_PASSWORD=your_authorization_password
|
||||||
TERMIN_PLANNER_URL=your_termin_planner_url
|
TERMIN_PLANNER_URL=your_termin_planner_url
|
||||||
|
@ -25,4 +26,10 @@ RABBITMQ_MAIL_QUEUE=
|
||||||
|
|
||||||
RECAPTCHA_SECRET_KEY=
|
RECAPTCHA_SECRET_KEY=
|
||||||
|
|
||||||
CONSTANTS_ACCOUNT_DEMO_DAYS=
|
CONSTANTS_ACCOUNT_DEMO_DAYS=
|
||||||
|
|
||||||
|
LOG_MANAGER_URL=
|
||||||
|
LOG_MANAGER_INTERVAL=
|
||||||
|
|
||||||
|
STRIPE_SECRET_KEY=
|
||||||
|
STRIPE_WEBHOOK_ENDPOINT_SECRET=
|
|
@ -1,5 +1,5 @@
|
||||||
import { Request, Response } from "express";
|
import { Request, Response } from "express";
|
||||||
import logger from "../logger/logger";
|
import logger, { userLogger } from "../logger/logger";
|
||||||
import Stripe from "stripe";
|
import Stripe from "stripe";
|
||||||
import {
|
import {
|
||||||
ACCOUNT_STATE,
|
ACCOUNT_STATE,
|
||||||
|
@ -122,7 +122,6 @@ export async function CreateCheckoutSession(priceId: string, userId: string) {
|
||||||
quantity: 1,
|
quantity: 1,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
customer_email: "hello@roese.dev",
|
|
||||||
mode: "subscription",
|
mode: "subscription",
|
||||||
success_url: `${DASHBOARD_URL}/checkout/success/{CHECKOUT_SESSION_ID}`,
|
success_url: `${DASHBOARD_URL}/checkout/success/{CHECKOUT_SESSION_ID}`,
|
||||||
cancel_url: `${DASHBOARD_URL}/checkout/canceled/{CHECKOUT_SESSION_ID}`,
|
cancel_url: `${DASHBOARD_URL}/checkout/canceled/{CHECKOUT_SESSION_ID}`,
|
||||||
|
@ -249,7 +248,7 @@ export async function StripeWebhook(req: Request, res: Response) {
|
||||||
process.env.STRIPE_WEBHOOK_ENDPOINT_SECRET as string
|
process.env.STRIPE_WEBHOOK_ENDPOINT_SECRET as string
|
||||||
);
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error("Webhook-Fehler", err);
|
logger.error("Webhook error", err);
|
||||||
return res.status(400).send(`Webhook Error: ${err}`);
|
return res.status(400).send(`Webhook Error: ${err}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -295,8 +294,10 @@ export async function StripeWebhook(req: Request, res: Response) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (event.type === "checkout.session.expired") {
|
||||||
|
logger.info(`webhook checkout.session.expired: ${event.data}`);
|
||||||
} else {
|
} else {
|
||||||
logger.warn("Ignoring unknown event:", event.type);
|
logger.warn(`Ignoring unknown event: ${event.type}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
res.sendStatus(200);
|
res.sendStatus(200);
|
||||||
|
@ -322,6 +323,11 @@ export async function GetBillingPortal(req: Request, res: Response) {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (user === null || user.stripe_customer_id === null) {
|
if (user === null || user.stripe_customer_id === null) {
|
||||||
|
userLogger.error(
|
||||||
|
userSession.user_id,
|
||||||
|
"GetBillingPortal: user not found",
|
||||||
|
userSession.user_id
|
||||||
|
);
|
||||||
return res.status(400).send({ err: "invalid request" });
|
return res.status(400).send({ err: "invalid request" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue