more on stripe
This commit is contained in:
parent
f82173ee07
commit
bcf8946740
|
@ -42,7 +42,12 @@ const authRouter = (passport: PassportStatic) => {
|
||||||
if (!req.isAuthenticated()) {
|
if (!req.isAuthenticated()) {
|
||||||
return res.redirect("/");
|
return res.redirect("/");
|
||||||
}
|
}
|
||||||
res.render("user", { user: req.user, error: null, removeProviderOption: canRemoveOneOutsideProvider(req.user) });
|
res.render("user", {
|
||||||
|
user: req.user,
|
||||||
|
error: null,
|
||||||
|
removeProviderOption: canRemoveOneOutsideProvider(req.user),
|
||||||
|
upgrade: req.query.upgrade,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post("/user", async (req, res, next) => {
|
router.post("/user", async (req, res, next) => {
|
||||||
|
|
|
@ -25,21 +25,19 @@ paymentRouter.post("/create-checkout-session", async (req, res, next) => {
|
||||||
lookup_keys: [req.body.lookup_key],
|
lookup_keys: [req.body.lookup_key],
|
||||||
expand: ['data.product'],
|
expand: ['data.product'],
|
||||||
});
|
});
|
||||||
console.log(prices);
|
|
||||||
const session = await stripe.checkout.sessions.create({
|
const session = await stripe.checkout.sessions.create({
|
||||||
billing_address_collection: 'auto',
|
billing_address_collection: 'auto',
|
||||||
line_items: [
|
line_items: [
|
||||||
{
|
{
|
||||||
price: prices.data[0].id,
|
price: prices.data[0].id,
|
||||||
// For metered billing, do not pass quantity
|
// For metered billing, do not pass quantity
|
||||||
quantity: 1,
|
quantity: 1,
|
||||||
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
mode: 'subscription',
|
mode: 'subscription',
|
||||||
// TODO ADD URLS
|
// TODO ADD URLS
|
||||||
success_url: `https://account.lingdocs.com/`,
|
success_url: `https://account.lingdocs.com/user?upgrade=success`,
|
||||||
cancel_url: `https://account.lingdocs.com/`,
|
cancel_url: `https://account.lingdocs.com/user`,
|
||||||
});
|
});
|
||||||
if (!session.url) {
|
if (!session.url) {
|
||||||
return next("error creating session url");
|
return next("error creating session url");
|
||||||
|
|
|
@ -52,11 +52,18 @@
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<h5>Account Level: <%= user.level.charAt(0).toUpperCase() + user.level.slice(1) %></h5>
|
<h5>Account Level: <%= user.level.charAt(0).toUpperCase() + user.level.slice(1) %></h5>
|
||||||
|
<% if (upgrade === "success") { %>
|
||||||
|
<p>🎉 Subscription started. Thank you for your purchase! 🎉</p>
|
||||||
|
<% } %>
|
||||||
<% if (user.level === "basic") { %>
|
<% if (user.level === "basic") { %>
|
||||||
<% if (user.upgradeToStudentRequest === "waiting") { %>
|
<% if (user.upgradeToStudentRequest === "waiting") { %>
|
||||||
<p>Wating for upgrade approval</p>
|
<p>Wating for upgrade approval</p>
|
||||||
<% } else { %>
|
<% } %>
|
||||||
<button class="btn btn-sm btn-secondary" id="upgrade-request-button" onclick="handleRequestUpgrade()">Request Upgrade</button>
|
<% if (user.tester) { %>
|
||||||
|
<form action="/payment/create-checkout-session" method="POST">
|
||||||
|
<input type="hidden" name="lookup_key" value="student-yearly" />
|
||||||
|
<button class="btn btn-sm btn-secondary" id="checkout-and-portal-button" type="submit">Upgrade Account</button>
|
||||||
|
</form>
|
||||||
<% } %>
|
<% } %>
|
||||||
<% } %>
|
<% } %>
|
||||||
<% if (user.email) { %>
|
<% if (user.email) { %>
|
||||||
|
@ -173,24 +180,23 @@
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function handleRequestUpgrade() {
|
// function handleRequestUpgrade() {
|
||||||
console.log("got here");
|
// const btn = document.getElementById("upgrade-request-button");
|
||||||
const btn = document.getElementById("upgrade-request-button");
|
// btn.innerHTML = "Sending...";
|
||||||
btn.innerHTML = "Sending...";
|
// fetch("/api/user/upgradeToStudentRequest", {
|
||||||
fetch("/api/user/upgradeToStudentRequest", {
|
// method: "POST",
|
||||||
method: "POST",
|
// }).then((res) => res.json()).then((res) => {
|
||||||
}).then((res) => res.json()).then((res) => {
|
// console.log(res);
|
||||||
console.log(res);
|
// if (res.ok) {
|
||||||
if (res.ok) {
|
// btn.innerHTML = "Upgrade request sent";
|
||||||
btn.innerHTML = "Upgrade request sent";
|
// } else {
|
||||||
} else {
|
// btn.innerHTML = "Error requesting upgrade";
|
||||||
btn.innerHTML = "Error requesting upgrade";
|
// }
|
||||||
}
|
// }).catch((e) => {
|
||||||
}).catch((e) => {
|
// console.error(e);
|
||||||
console.error(e);
|
// btn.innerHTML = "Error requesting upgrade";
|
||||||
btn.innerHTML = "Error requesting upgrade";
|
// });
|
||||||
});
|
// }
|
||||||
}
|
|
||||||
function clearPasswordForm() {
|
function clearPasswordForm() {
|
||||||
document.getElementById("oldPassword").value = "";
|
document.getElementById("oldPassword").value = "";
|
||||||
document.getElementById("password").value = "";
|
document.getElementById("password").value = "";
|
||||||
|
|
Loading…
Reference in New Issue