web-dev-qa-db-ja.com

クーポンコードの適切な形式/構文は何ですか?

オンラインショップでは、クーポンコード(「プロモーションコード」または「バウチャーコード」とも呼ばれます)を配布しています。

現在、これらのコードは、狂った開発者がフォーマットを設計したように見えます:

FCF4A803-18F0-46BE-A14D-6F26101C9E01

実際、その狂った開発者は私でした。 GUIDを使用しました。

今、私は(少なくとも少し)より使いやすいフォーマットを探しています。

YouTubeビデオのURLのようなものが想像できます。

BROWqjuTM0g

または、ティックの現在のタイムスタンプのみ:

635507907277936690

または現在のUNIXエポック時間:

1415200070

または、製品を識別するための接頭辞はありますか?例:

PROD1415200070

私の質問:

クーポンコードのフォーマット/構文をどのように「設計」しますか?

更新1:

私は言及するのを忘れていました:私たちは複数の異なるクーポンを配っています。したがって、「BUYIT」などの意味のある文字列は適合しません。ランダムな部分が必要だと思います。

2
Uwe Keim

多数の異なる一意のコードが必要な場合は、ユーザーが手動で入力する必要があるかどうかが重要であり、アルゴリズムによって生成する必要があります。

手動で入力

ユーザーが入力する必要があるものについては、それでも十分にランダムですが、以前はGHJ5-JKG4のような文字列を生成することでこれを行いました。

まず、0から31までの乱数を選択します(A〜Z、0〜9、および1、0、I、Oを削除)。その文字を文字列に追加します。したがって、g、次にh、次にjなどとなります。上記の例を使用すると、ghj5jkg4になります。

その文字列に不適切な言語がないか確認してください。 1fuck3r5のようなものをランダムに生成する必要はありません。コメントで提案されているように、特に数字を使用しない場合は、母音だけを削除するだけで十分な場合があります。

大文字GHJ5JKG4に変換し、DBに保存します。ユーザーに表示するときは、文字列をハイフンGHJ5-JKG4で区切って半分に分割します。これは、4文字を超えることを覚えるのが難しいためです。

有効かどうかを確認するときは、英数字以外の文字を削除し、DBでGHJ5JKG4を検索してください。

メール内の一意のコード

より長いストリングで逃げることができます。たとえば、現在のUNIXタイムスタンプのMD5ハッシュの最初の10文字をキーワードに追加します。

FREE8CD89BAB45

非固有コード

何が素敵に見える!

@RomCからのFREESHIPPINGは良い例です。

3
evandentremont

100万のコードトップが必要だとします。ミリアール/十億の可能な組み合わせがあるフレンドリーなスキームを使用しますが、簡単にスケールアップできるため、すべての可能な組み合わせが有効なクーポンコードを生成したわけではありません。

できれば同じカテゴリから、1000の短くて頻繁な下品でない単語のリストを取得します。名詞だけ。順序をランダム化します。 0から999までのゼロが埋め込まれた一意の3桁の番号をそれぞれに割り当てます(テキストファイルの行番号を1つ減らすことができます)。

1000のうち1つだけを有効にするパターンを定義します。 4桁ごとが前の3桁のチェックディジットです。数字トリプレットで再グループ化します。これらの番号で識別されるシークレットリストから単語を選択します。

123_456_789_ – 1+2+3=6; 4+5+6=15, 1+5=6; 7+8+9=24, 2+4=6
123645667896
123 645 667 896
rabbit tennis engine water

これらの単語は、乱数よりも覚えやすく、入力(およびスペル修正)が簡単です。

同じ番号を任意にコーディングした他の言語のWordリストを使用してこれを国際化することもできます。

Garten Waage Müll Norden

大文字で単語を受け入れます。数字と句読点を捨てます。

これは頭​​のてっぺんからです。単一のチェックディジットで十分かどうか、小さいリストまたは大きいリストを使用する必要があるかどうか、またはワード番号がワードの位置に依存する必要があるかどうか(つまり、000000000は4つの異なるワードになる)を数学者に尋ねます。私の唯一のポイントは、ランダムな文字と数字のシーケンスを単純な単語に変更することです。非常に短い単語のリストに、サイトのビジネスにとって意味のある単語を入力できます。

2
Crissov

クーポンコード(または制限)に使用できる値を定義する追加のルールがなければ、(1)覚えやすく、(2)可能な割引の種類を説明するものをお勧めします得られた。

例:

割引25%OFF
送料無料
WIDGET123(提案したような製品名-少なくとも、クーポンコードはその特定の製品のみを対象としています)。

1
RomC