[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
}
}
正则版本,待正则熟练之后再补充
[JavaCore] 微信手机浏览器版本判断的更多相关文章
- [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器
截至自2017-08-11,支持现世已出的几乎所有PC端浏览器版本判断. 受支持的PC端浏览器列表: Edge IE Chrome Firefox Opera Safari QQ浏览器 360系列浏览 ...
- javascript判断手机浏览器版本信息
<script type="text/javascript"> /* * 智能机浏览器版本信息: * */ var browser={ versions:functio ...
- IE浏览器版本判断 HTML代码
<!--[if IE 6.0]> <div id="noie6" style="z-index: 20002;border: 1px solid #F7 ...
- 在手机浏览器中判断App是否已安装
从网上搜到之前手机中判断App是否安装可以通过onblur事件+定时器来实现. 但现在要做这个功能时,按网上的说法已经不能实现了.因为现在浏览器中打开App,window不会触发onblur事件. 在 ...
- IE浏览器版本判断
<script type="text/javascript"> var browser=navigator.appName var b_version=navigato ...
- jquery判断浏览器版本插件,jquery-browser.js
jquery判断浏览器版本插件,jquery-browser.js,jquery 判断是否为ie浏览器插件 >>>>>>>>>>>&g ...
- 识别手机浏览器代码【C#和JS两种语言】
C# 识别手机浏览器代码: public static bool MobileBrowserDetect() { bool bismobile = false; try { #region 包含and ...
- 通过浏览器navigator判断浏览器版本或者手机类型&&判断微信访问
javascript 的navigator属性,不常用,但是用处也不少,主要用处是在做浏览器兼容的问题的时候,现在有的网站已经不兼容IE6,用户假如用IE6浏览网页的话,会提示浏览器升级等信息.或者判 ...
- js判断手机浏览器操作系统和微信浏览器的方法
做手机端的前端开发,少不了对手机平台的判断.如,对于app下载,就要判断在Android平台下就显示Android下载提示:在iOS平台下就显示iOS下载提示. 今天就为大家介绍一下用js判断手机客户 ...
随机推荐
- PHP+Hadoop实现数据统计分析
记一次完全独立完成的统计分析系统的搭建过程,主要用到了PHP+Hadoop+Hive+Thrift+Mysql实现 安装 Hadoop安装: http://www.powerxing.com/inst ...
- UNIX进程
UNIX进程控制的博客 http://blog.csdn.net/yang_yulei/article/details/17404021 Linux的概念与体系 http://www.cnb ...
- shell变量判空几种方法
强烈声明:关于对数字的比较以及判断是否为空 最好在外层添加""引起来,这样可以避免空与其他字符比较时报错的问题. 1. 变量通过" "引号引起来 #!/bin/ ...
- Games:取石子游戏(POJ 1067)
取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37662 Accepted: 12594 Descripti ...
- linux 卸载软件
sudo apt-get autoremove --purge 后跟要卸载的软件名称, --purge表示要完全卸载.
- .NET微信公众号开发-2.0创建自定义菜单
一.前言 开发之前,我们需要阅读官方的接口说明文档,不得不吐槽一下,微信的这个官方文档真的很烂,但是,为了开发我们需要的功能,我们也不得不去看这些文档. 接口文档地址:http://mp.weixin ...
- Apple Swift编程语言入门教程
Apple Swift编程语言入门教程 作者: 日期: 布衣君子 2015.09.22 目录 1 简介 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 ...
- July 7th, Week 28th Thursday, 2016
The 79th Anniversary of Anti-Japan War Difficulties vanish when faced bodly. 勇敢面对困难,困难自会退让. The best ...
- qt_文本编辑器实现_附带详细注释和源码下载
源码下载: 链接: http://pan.baidu.com/s/1c21EVRy 密码: qub8 实现主要的功能有:新建,打开,保存,另存为,查找(查找的时候需要先将光标放到最下面位置才能查全,不 ...
- NYOJ题目62笨小熊
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAr4AAAK1CAIAAAChInrhAAAgAElEQVR4nO3dO3LjutaG4X8Szj0Qxx