生成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
分类:
后端笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】