首页 > 代码库 > [JavaCore] 微信手机浏览器版本判断
[JavaCore] 微信手机浏览器版本判断
公司要做微支付,微信浏览器版本要大于5
package com.garinzhang.web.weixin; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; /** *类说明 *@author Garin Zhang */ public class WchatUtil { public static final String WEI_XIN_BROWSER = "MicroMessenger/"; public static final int WEI_XIN_LEGAL_VERSION = 5; /** * 正则使用不熟练,只能自己苦逼解析 * @param userAgent * @return */ public static boolean isLegalVersion(String userAgent) { // 判断是否为微信,并对支付渠道做相应处理 // "Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko) Mobile/9B206 MicroMessenger/5.0" // String userAgent = request.getHeader("user-agent"); boolean isLegalVersion = false; if(StringUtils.isNotBlank(userAgent)) { // 判断是否为微信 int position = userAgent.indexOf(WEI_XIN_BROWSER); userAgent.matches(WEI_XIN_BROWSER); if(position != -1) { String versionStr = userAgent.substring(position + WEI_XIN_BROWSER.length()); String[] splitVersion = versionStr.split("\\."); // 程序解析 if(splitVersion != null && splitVersion.length > 0) { String mainVersion = splitVersion[0]; // 判断主版本号大于5 if(NumberUtils.isNumber(mainVersion)) { int i = Integer.valueOf(mainVersion); if(i >= WEI_XIN_LEGAL_VERSION) { isLegalVersion = true; } } } } } System.out.println("Agent: " + userAgent + ", isLegalVersion: " + isLegalVersion); return isLegalVersion; } public static void main(String[] args) { // 本来准备直接按照如下比较,结果发现当主版本号超过10的时候,就不灵了 System.out.println("5.0".compareTo("5.0.2")); // =0 System.out.println("5.0".compareTo("10.1")); // >0 System.out.println("5.0".compareTo("0")); // >0 System.out.println("5.0".compareTo("4.0.2")); // >0 System.out.println("5.0".compareTo("5.1.2")); // <0 // 写个方法单独解析 isLegalVersion("Mobile/9B206 MicroMessenger/5.0"); // true isLegalVersion("Mobile/9B206 MicroMessenger/5.0.2");// true isLegalVersion("Mobile/9B206 MicroMessenger/4.0"); // false isLegalVersion("Mobile/9B206 MicroMessenger/5.1"); // true isLegalVersion("Mobile/9B206 MicroMessenger/10.1"); // true isLegalVersion("Mobile/9B206 MicroMessenger/0.1"); // false } }
正则版本,待正则熟练之后再补充
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。