Задать вопрос
johnliv
@johnliv

Как правильно генерировать промокоды?

Добрый день!

Подскажите, плз, как правильно генерировать промокоды? Возможно, есть устоявшийся алгоритм/сервис.

Требования "стандартные":
  • Уникальность (количество не ограничено)
  • Сложно подобрать
  • Идут не по порядку/не имеют легкоопределяемой системы
  • Средняя длина промо-сообщения (планируется размещать в том числе на физических носителях, карточках, упаковках и тп.)
  • Набор латинских букв и цифр, human-readable не требуется
  • Автоматизированная генерация


Спасибо!

ps понятно, что несложно напрограммировать и самим; интересуют best-practices )
  • Вопрос задан
  • 2165 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 5
Robur
@Robur
Знаю больше чем это необходимо
1. Генерируете совершенно случайную строку с нужными параметрами длины/символов
2. проверяете есть ли она в базе
3. если да - то п 1.
4. сохраняете в базу.

Пожалуйста!
Ответ написан
Комментировать
nki
@nki
bezkart.ru готовая система лояльности
Вам идеально подойдет GUID.
Ответ написан
gbg
@gbg Куратор тега Программирование
Любые ответы на любые вопросы
pwgen справится с этим
Ответ написан
Комментировать
TheRonCronix
@TheRonCronix
  • выбрать алгоритм/хэш с равномерным распределением.
  • выбрать диапазон такой, чтобы вероятность совпадения кода в соотношении с кол-вом выдаваемых промокодов была мала. Если у вас фередальная сеть то промокод будет подлиннеее, если небольшой магазин, то покороче. Возмжно, вы хотите чтобы промокод не повторялся, тогда вероятность коллизии нужно еще снизить, промокод будет подлиннее.
  • выбрать нестандартный генератор случайных чисел. Использовать нестандартный seed/salt/завязаться на время/завязаться на оборудование.
Ответ написан
Комментировать
seoresait
@seoresait
web developer
Обычно промокод состоит из 3-4 блоков по 4-5 символов.
Можно добавить в префикс или постфикс (в начале, в конце), например год.
Возможно, Вам подойдет этот сервис:
https://pswrd.getcode.xyz/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы