• 生成15位或者4位随机数 (主要用于微信支付订单号)


    package com.skynet.wechat.wxPay.common;
    
    import java.util.Date;
    import java.util.Random;
    
    import com.skynet.wechat.api.util.DateUtils;
    
    public class OrderNoUtil {
    
       /**
        * 生成微信支付订单号
        * 
        * @return
        */
       public static String wxOrderNo() {
          // 订单前缀
          String temp = DateUtils.getDate(new Date(), "yyyyMMddHHmmssSSS");
          // 生成15位随机序列
          String randomSte = getRandomString(15);
          return temp + randomSte;
       }
    
       /**
        * 生成微信支付订单号
        *
        * @return
        */
       public static String wdOrderNo(String appid) {
          // 订单前缀
          String temp = DateUtils.getDate(new Date(), "yyyyMMddHHmm");
          // 生成4位随机序列
          String randomSte = getRandomInt(4);
          return appid + temp + randomSte;
       }
    
       private static String getRandomString(int length) { // length表示生成字符串的长度
          String base = "abcdefghijklmnopqrstuvwxyz0123456789";
          Random random = new Random();
          StringBuffer sb = new StringBuffer();
          for (int i = 0; i < length; i++) {
             int number = random.nextInt(base.length());
             sb.append(base.charAt(number));
          }
          return sb.toString().toUpperCase();
       }
    
       private static String getRandomInt(int length) { // length表示生成字符串的长度
          String base = "0123456789";
          Random random = new Random();
          StringBuffer sb = new StringBuffer();
          for (int i = 0; i < length; i++) {
             int number = random.nextInt(base.length());
             sb.append(base.charAt(number));
          }
          return sb.toString().toUpperCase();
       }
    
    // public static void main(String[] args) {
    //    System.out.println(wxOrderNo());
    // }
    }
    
    
    使用方法:
      String serialNumber = OrderNoUtil.wxOrderNo();  //生成交易平台流水号

      
    String serialNumber = OrderNoUtil.wdOrderNo(String appid); //生成交易平台流水号 该方法需要一个appId
     
  • 相关阅读:
    笔试助攻题(思路)
    const 修饰成员函数 前后用法(effective c++ 03)
    UNIX 是啥?!和Linux什么关系?
    我的offer之路(一)
    我的offer之路(一)
    ANSI C 与 K&R C
    c内置数据类型
    预处理器
    小数用二进制如何表示
    C++中有三种创建对象的方法
  • 原文地址:https://www.cnblogs.com/yydxh/p/11810497.html
Copyright © 2020-2023  润新知