Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Программирование »   Общие вопросы »   Card Generation
RSS

Card Generation

Текущий рейтинг темы: Нет

<<Назад  Вперед>>Печать
 
wsx
Участник Проекта
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
Ну вот, в своём биллинге я добрался до очень интересного места. Генерации карт экспресс-оплаты.

Пишу на ОбжектПаскале, СУБД использую Постгресс естественно. ТОесть есть и триггеры и хранимые процедуры.
Собственно говоря вопрос. Как лучше всего сделать генерацию карточек ? Нужно учитывать так же дальнейшую передачу данных в полиграфию. Как это происходит - я не знаю.
Вобщем основные переменные:
Серия, Номинал, номер карты, пин-код.

Как лучше всего это сделать ? Средствами СУБД ? Или в начале генерировать карты в массив, и только потом передавать в субд ?
Как сделать, что бы не было совпадений ? Триггером ?

Учитываем производительность, ресурсоёмкость, юзабилити, как для менеджера(тот, кто генерит карты), админа(административные операции) и конечного пользователя. Ну и про полиграфию забывать не стоит :)

Идеи ? Предложения ?
Как это сделано у других ?(МТС, Мегафон, Билайн, Татинком, провайдеры итд итп....)
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Ну с номером все просто: серия + последовательный автоинкремент. А вот с PIN-кодом для начала надо определеиться: либо ты будешь хранить массив всех PIN-кодов (в этом случае их надо генерировать случайно), либо проверять правильность PIN-кода по какому-то алгоритму.
В качестве такого алгоритма я предложил бы следующее: берешь хеш-функцию (например, MD5) от номера карты, дополненного некоторой достаточно длинной строкой, которую будешь знать только ты, а потом заменяешь все нецифровые символы цифрами по определенному правилу (например, для MD5 меняешь A-F на 0..5).
Еще, кстати, надо сделать поле "статус карточки" — активирована или нет.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Участник Проекта
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
Статус карточки делается просто. Точнее там не просто активно/неактивно. есть ещё статусы заблакирована оператором(так же записывается причина в транзакции логов), или же заблакирована из-за подбора итд итп... ТОесть кодов причин - очень много. Может быть она вышла из действия или просто зарезервирована и пока её использовать нельзя...


Думаю надо просто использовать random для пинкодов, или это не надёжно ?

Насчёт sequences - интересная мысль :)) Темболее, что в постгресе эта фича очень удобна:)
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Вообще даже не знаю, как этот самый random реализован в Postgres... Хотя с другой стороны, чтобы подобрать параметры генератора, нужна довольно длинная последовательность, т.е. по 2-3 карточкам этого сделать не получится.
В принципе, тот же алгоритм, что я предложил, можно использовать и в случае хранения PIN-кодов...

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
<<Назад  Вперед>>Печать
Объединенный Открытый Проект »   Программирование »   Общие вопросы »   Card Generation
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0404. Количество выполненных запросов: 18, время выполнения запросов 0.0294