package jframe.pay.wx.http.util; import java.util.Random; import jframe.pay.wx.http.AccessTokenRequestHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class WxUtil { static Logger LOG = LoggerFactory.getLogger(WxUtil.class); public static String getNonceStr() { Random random = new Random(); return MD5Util.MD5Encode(String.valueOf(random.nextInt(10000)), "GBK"); } public static String getTimeStamp() { return String.valueOf(System.currentTimeMillis() / 1000); } /** * 生成微信订单号 * * @return */ public static String genTradeNo() { // ---------------生成订单号 开始------------------------ // 当前时间 yyyyMMddHHmmss String currTime = TenpayUtil.getCurrTime(); // 8位日期 String strTime = currTime.substring(8, currTime.length()); // 四位随机数 String strRandom = TenpayUtil.buildRandom(4) + ""; // 10位序列号,可以自行调整。 // 订单号,此处用时间加随机数生成,商户根据自己情况调整,只要保持全局唯一就行 return strTime + strRandom; // ---------------生成订单号 结束------------------------ } public static String getToken() { /*if (mem == null) { LOG.error("Memcached service is null"); // TODO return null; } // 获取token值,这样效率更好,TODO 但有一定风险,需要测试 Object token = mem.get(ServiceConstants.Key_Wx_Access_Token);*/ Object token = null; if (token == null) { token = AccessTokenRequestHandler.getTokenReal(); // less than 7200(default value) /*mem.set(ServiceConstants.Key_Wx_Access_Token, token, new Date( 6600 * 1000));*/ } return token.toString(); } }