1.后台管理系统中批量生成优惠券的编码2.优惠券编码不能太长,否则用户领取优惠券时不方便输入编码3.优惠券编码也不能太短,同时编码还不能有规律,否则会被猜出来4.所有的优惠券编码不能重复
各位大神有不有什么好的方案
小伙看你根骨奇佳,潜力无限,来学PHP伐。
淘宝注文番号
2016-04-28 注文番号: 1846204025999235
2016-04-28 注文番号: 1846669615349235
2016-04-27 注文番号: 1846164650079235
2016-04-27 注文番号: 1845531842409235
2016-04-26 注文番号: 1840290749419235
2012-07-29 注文番号: 148557304839235
クーポン コードの命名に関するいくつかのルール: 1. 重複は禁止します。 2. セキュリティ。 注文番号から会社の実際の営業情報を明らかにすることはできません。たとえば、注文がシリアル番号である場合、他の人が注文番号から会社の全体的な営業概要を推測することができます。したがって、注文コードは社内の一部の人以外には基本的に理解できないものでなければなりません。 JD.com や Taobao のコーディング ルールを参照しても、他の人はそれが何を意味するのか基本的に理解できません。実際、漏洩防止コーディングの最善のルールは、会社の業務に関連するデータをコーディングに含めないことです。 3.大規模なランダムコードは使用できません。 多くの人が順序エンコード規則を分析するとき、最初の考えは間違いなく非反復的一意性であり、次に 2 番目の考えはセキュリティであり、最初の 2 つを満たす 3 番目の考えはランダム コードです。大規模なランダムコードはランダムに生成されるため、意味がなく漏洩する必要がありません。しかし実際には、このコーディングルールは実装時に大きな問題を抱えます。 ランダム コードは 2 番目のセキュリティ要件を満たしています。最初の非反復性要件を満たすには、注文数量が 100,000 に達したかどうかを確認するために、ランダム コードを生成するときに履歴データを比較する必要があります。注文コードを生成するたびに、100,000 個の履歴データを比較する必要があります。これがどのような大きな問題を引き起こすかは想像できます。 しかし、エンコードにランダムコードを使用することはできないのでしょうか? 2 ~ 3 桁などの小規模なランダム コードを使用できます。この種のランダム コードは通常、シリアル番号などと組み合わせて使用されます。その主な機能は、シリアル番号の実データを隠すことです。 4. 同時実行を防止します。 このルールは主にコーディング時の時間設定に適用されます。 5. 制御桁。 注文番号の目的は、問い合わせを容易にすることです。 通常の使用シナリオは、注文に異常がある場合や返品があった場合に、ユーザーが注文番号をカスタマー サービスに報告し、カスタマー サービスが問い合わせるというものです。 つまり、一般的には 10 位から 15 位にいるほうが良いということになります。 JD.com は 10 位、淘宝網は 15 位です。
16 桁の UUID を生成
これは現在行われていますが、常に不便に感じます。このクーポンは印刷する必要があり、ユーザーは @jiangxiao
https://www.zhihu.com/question/19805896
時間 + ユーザー ID + クーポンが属する商品/店舗 ID + ランダム コード
機密情報は md5 またはその他のアルゴリズムである可能性があります
淘宝注文番号
2016-04-28 注文番号: 1846204025999235
2016-04-28 注文番号: 1846669615349235
2016-04-27 注文番号: 1846164650079235
2016-04-27 注文番号: 1845531842409235
2016-04-26 注文番号: 1840290749419235
2012-07-29 注文番号: 148557304839235
クーポン コードの命名に関するいくつかのルール:
1. 重複は禁止します。
2. セキュリティ。
注文番号から会社の実際の営業情報を明らかにすることはできません。たとえば、注文がシリアル番号である場合、他の人が注文番号から会社の全体的な営業概要を推測することができます。したがって、注文コードは社内の一部の人以外には基本的に理解できないものでなければなりません。 JD.com や Taobao のコーディング ルールを参照しても、他の人はそれが何を意味するのか基本的に理解できません。実際、漏洩防止コーディングの最善のルールは、会社の業務に関連するデータをコーディングに含めないことです。
3.大規模なランダムコードは使用できません。
多くの人が順序エンコード規則を分析するとき、最初の考えは間違いなく非反復的一意性であり、次に 2 番目の考えはセキュリティであり、最初の 2 つを満たす 3 番目の考えはランダム コードです。大規模なランダムコードはランダムに生成されるため、意味がなく漏洩する必要がありません。しかし実際には、このコーディングルールは実装時に大きな問題を抱えます。
ランダム コードは 2 番目のセキュリティ要件を満たしています。最初の非反復性要件を満たすには、注文数量が 100,000 に達したかどうかを確認するために、ランダム コードを生成するときに履歴データを比較する必要があります。注文コードを生成するたびに、100,000 個の履歴データを比較する必要があります。これがどのような大きな問題を引き起こすかは想像できます。
しかし、エンコードにランダムコードを使用することはできないのでしょうか? 2 ~ 3 桁などの小規模なランダム コードを使用できます。この種のランダム コードは通常、シリアル番号などと組み合わせて使用されます。その主な機能は、シリアル番号の実データを隠すことです。
4. 同時実行を防止します。
このルールは主にコーディング時の時間設定に適用されます。
5. 制御桁。
注文番号の目的は、問い合わせを容易にすることです。
通常の使用シナリオは、注文に異常がある場合や返品があった場合に、ユーザーが注文番号をカスタマー サービスに報告し、カスタマー サービスが問い合わせるというものです。
つまり、一般的には 10 位から 15 位にいるほうが良いということになります。
JD.com は 10 位、淘宝網は 15 位です。
16 桁の UUID を生成
を手動で入力する必要がある場合があります。これは現在行われていますが、常に不便に感じます。このクーポンは印刷する必要があり、ユーザーは @jiangxiao
https://www.zhihu.com/question/19805896
時間 + ユーザー ID + クーポンが属する商品/店舗 ID + ランダム コード
機密情報は md5 またはその他のアルゴリズムである可能性があります