Веб-приложение Credit Point - PullRequest
2 голосов
/ 01 июля 2011

Я начал работать над сайтом электронной коммерции.Этот веб-сайт будет работать на PHP и MySQL и требует наличия кредитной системы для пользователей;они смогут расплачиваться кредитом, пополнять его ваучерами или обычными платежами, а также выводить средства.

Теперь у меня есть опыт работы с API обработки кредитных карт, поэтому вносить и снимать деньги не следуетбыть проблемой;Однако проблема заключается в том, как надежно хранить кредитную информацию.Хранение его в виде одного числового поля не совсем идеально и потенциально может быть довольно легко раскрыто.Я думал о том, чтобы хранить все транзакции и кредитную историю каждого пользователя в отдельной таблице, и каждый раз, когда он входит в систему, пересчитывать, каким должен быть его кредит.То же самое будет применяться перед любой транзакцией, которую они пытаются выполнить.Я хотел бы услышать, что вы думаете о том, как это должно быть реализовано.

РЕДАКТИРОВАТЬ: Просто чтобы уточнить;Мой вопрос не о том, как обрабатывать кредитные карты, и не будет хранить информацию о кредитных картах.Я буду использовать хорошо известный и безопасный API для обработки платежей (например, через PayPal).Однако, основываясь на платежах по кредитной карте, мне нужно приписать соответствующие баллы пользователя в виде кредита.Эти пункты будут представлять средства на веб-сайте (в то время как деньги будут храниться на корпоративном счете, пока пользователь не попытается произвести платеж / отзыв) и будут использоваться для осуществления платежей и снятия средств.Опять же, для фактической обработки платежей я бы использовал безопасный API, однако я не уверен, как правильно реализовать кредитные очки со структурной точки зрения в самом приложении.Я не хочу использовать простую систему с одним полем, так как я бы посчитал ее очень опасной.Я надеюсь, что это немного проясняется.

Приветствия

1 Ответ

2 голосов
/ 01 июля 2011

Возможно, это не тот ответ, который вы ищете, но вот мои 2 цента.

По моему личному мнению, если кто-то не контролирует ваши выделенные серверы 24/7, вам никогда не следует хранить номера кредитных карт в вашей базе данных в любом формате, это слишком рискованно.

Очень хорошим решением, с которым я столкнулся в прошлом году, было BrainTree http://www.braintreepayments.com/. Вы можете настроить очень хорошую систему оплаты кредитной картой, не принимая на себя никаких обязательств. Их API позволяет выполнять транзакции между серверами и прозрачным перенаправлением (формировать сообщения на своем сайте, а они перенаправляют обратно на ваш сайт). В то же время их сервис Vault позволяет вам хранить кредитные карты на их конце, и вы просто используете токен в межсерверном API для обработки платежа. Вы можете сохранить последние 4 цифры (которые они предоставляют в деталях транзакции) в вашей БД вместе с типом CC и токеном, при этом вы можете отобразить раскрывающийся список для пользователя, чтобы выбрать, какую карту он хочет использовать, и вы просто используйте токен при общении с их API.

API очень хорошо документирован с полными примерами. Я думаю, вы должны изучить их.

Edit: Я считаю, что у вас должна быть таблица, так как вы предложили сохранить всю историю и поле «итогов» в таблице пользователей, которые можно использовать для отображения в разных местах. Каждый раз, когда сделка сделана, вычисляют сумму и кешируют ее в этом поле для готового использования. Однако, это хорошая идея, чтобы пересчитать это в определенных критических местах, чтобы убедиться, что все в порядке. Хотя это поле открыто, но у вас есть полный журнал, который может помочь вам пересчитать все, если это необходимо.

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