MongoDb Схема для создания учетной записи с планом подписки - PullRequest
0 голосов
/ 15 января 2019

Мне нужно создать схему создания учетной записи, которая в основном состоит из трех этапов.

На шаге 1 у нас есть электронный идентификатор с паролем и подтверждение пароля.

шаг 2. Пользователь может выбрать тарифный план, который является базовым, стандартным и премиальным. После

шаг 3: Платежный модуль, в котором мы запрашиваем реквизиты карты и оплату для выбранного плана.

после успешной подписки пользователь перенаправляется в панель управления. Я должен разработать схему.

1 Ответ

0 голосов
/ 15 января 2019

Шаг 1 - нет причин сохранять пароль для подтверждения. это следует проверять только на стороне клиента. Поэтому нам нужны только адрес электронной почты и пароль (хэшировано: пароль + соль [адрес электронной почты / идентификатор пользователя]) Убедитесь, что при регистрации пользователя вы проверяете электронную почту

Шаг 2 - должен быть индекс, скажем, 0 - не подписан, 1 - базовый, 2 - стандартный, 3 - премиум

Шаг 3 - Это лучше для вас не держать. просто используйте API онлайн-клиринга, чтобы получить платеж и подтверждение платежа.

Я бы добавил поля даты подписки. и дата истечения срока подписки. удачи.

EDITED

let schema = new Schema({
    email: { type: String, validate: validateEmail }, //The validate Email should be a function that get as value the email and return true or false if it is valid! (email format/not duplicated)
    subscription: { type: Number },// 0-non. 1-basic, 2-standard, 3-premium (this will be set by the payment)
    subscriptionDate: { type: Date },
    subscriptionExpr: { type: Date }//This also will be set by the payment, and will be checked before any service giving. making sure the subscription is still valid.
});

Это самая основная форма схемы, которая вам нужна. Вы можете сделать его более сложным, сделав последние три поля в массиве для отслеживания прошлых планов подписки, которые были у пользователя или около того.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...