我使用客户门户设置了 Stripe Checkout,并且希望能够检索客户 ID 以让用户访问他的门户。
为了:
- 我想检索客户 ID
- 将其保存在我的数据库中(用户已登录)。
结账表单效果很好,重定向也很好。但我无法检索客户 ID(当我console.log()
it.
我的快递代码:
router.post("/create-checkout-session", ensureAuthenticated, async (req, res) => {
const { priceId } = req.body;
try {
const session = await stripe.checkout.sessions.create({
mode: "subscription",
payment_method_types: ["card"],
line_items: [
{
price: priceId,
quantity: 1,
},
],
success_url: 'http://localhost:3000/fr/premiereconnexion?session_id={CHECKOUT_SESSION_ID}'
});
res.send({
sessionId: session.id,
});
}
catch (e) {
res.status(400);
return res.send({
error: {
message: e.message,
}
});
}
});
router.post('/premiereconnexion', ensureAuthenticated, async (req, res) => {
const session = await stripe.checkout.sessions.retrieve(req.query.session_id);
const customerId = await stripe.customers.retrieve(session.customer.id);
console.log(customerId);
req.user.stripeCustomer = customerId
req.user.save()
});
router.get('/premiereconnexion', ensureAuthenticated, (req, res) => {
res.render('users/fr/endpayment', {
user: req.user
})
})
我的用户模型:
const User = new Schema({
firstName: {
type: String,
required: true
},
lastName: {
type: String,
required: true
},
email: {
type: String,
required: true,
unique: true,
required: true
},
stripeCustomer: {
type: String,
default: null
}
});
第一个问题是能够调用客户ID。我什至不知道我该怎么做。