찾다

 >  Q&A  >  본문

java - 怎么批量生成优惠券的编码

1.后台管理系统中批量生成优惠券的编码
2.优惠券编码不能太长,否则用户领取优惠券时不方便输入编码
3.优惠券编码也不能太短,同时编码还不能有规律,否则会被猜出来
4.所有的优惠券编码不能重复

各位大神有不有什么好的方案

伊谢尔伦伊谢尔伦2813일 전1168

모든 응답(4)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 17:57:26

    1. 타오바오 주문번호

    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차 보안 요구사항을 충족합니다. 첫 번째 비반복 기능을 충족하려면 랜덤코드 생성 시 과거 데이터를 비교하여 중복이 있는지 확인해야 합니다. 주문량이 100,000회에 도달하면, 주문 코드를 생성할 때마다 10만 개의 과거 데이터를 비교해야 하는데 이것이 얼마나 큰 문제를 일으킬지 짐작할 수 있습니다.
    그런데 인코딩 시 랜덤코드를 사용할 수는 없나요? 2~3자리 등 소규모 랜덤 코드를 사용할 수 있습니다. 이러한 종류의 랜덤 코드는 일반적으로 일련번호와 함께 사용됩니다. 주요 기능은 일련번호의 실제 데이터를 숨기는 것입니다.
    4. 동시성을 방지합니다.
    이 규칙은 주로 코딩 시 시간 설정에 사용됩니다.
    5. 제어 숫자.
    주문번호의 목적은 문의를 용이하게 하기 위한 것입니다.
    일반적으로 정상적인 사용 시나리오는 주문에 이상이 있거나 반품이 발생한 경우 사용자가 고객 서비스에 주문 번호를 보고하고 고객 서비스에서 문의하는 것입니다.
    그래서 일반적으로 10~15위 정도가 더 좋습니다.
    JD.com은 10위, Taobao는 15위를 기록했습니다.

    회신하다
    0
  • 阿神

    阿神2017-04-17 17:57:26

    16자리 UUID 생성

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:57:26


    이것은 현재 완료되었지만 항상 불편함을 느낍니다. 이 쿠폰은 인쇄해야 하며 사용자가 @jiangxiao를 수동으로 입력해야 할 수도 있습니다

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:57:26

    https://www.zhihu.com/question/19805896


    시간 + 사용자ID + 쿠폰이 속한 상품/매장ID + 랜덤코드

    민감한 정보는 md5 또는 기타 알고리즘일 수 있습니다

    회신하다
    0
  • 취소회신하다