https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4a1da83332cf1cb6&redirect_uri=https://www.grande-health.com/mp/1.html&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
1.获取用户唯一识别码code(后台获取)
// 获取用户唯一识别码 code
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r != null) return unescape(r[2]);
return null;
}
// 调用方法
var code = GetQueryString("code");
2.根据code获取微信openid
/*
* 获取用户 openid
* 传入用户唯一识别码 code
* https://tsch.fromfuture.cn:7712/GZ/v1/weixin/getOpenid?code=071df1AX0zVnb12FJvxX0FHNzX0df1Ab
*/
if(code == null) {
alert('获取code失败')
}
function gainOpenid() {
var paramJson = {
'code': code
}
try {
ajaxUtil('POST', WEIXIN_GETOPENID, paramJson, function(result) {
if(result.code == '000') {
if(typeof(result.data.openid) == 'undefined' || result.data.openid == "" || result.data.openid == null) {
alert("获取失败")
} else {
window.sessionStorage.WEIXIN_OPENID = result.data.openid;
ajaxUtil('POST', WEIXIN_CHECKOPENID, {
'openid': window.sessionStorage.WEIXIN_OPENID
}, function(result2) {
if(result2.code == '000') {
if(result2.data.code == '1') {
G_APP_USRGUID = result2.data.usrguid;
window.sessionStorage.WEIXIN_USRGUID = result2.data.usrguid;
window.sessionStorage.WEIXIN_PHONENUM = result2.data.acounnt;
mui.openWindow({
url: 'myProfile.html',
id: 'myProfile.html'
});
} else if(result2.data.code == '2') {
mui.openWindow({
url: 'myRecord.html',
id: 'myRecord.html'
});
}
} else if(result2.code == '001') {
mui.toast('请求出错');
}
});
}
} else if(result.code == '001') {
mui.toast('请求出错');
}
});
} catch(e) {
mui.toast('请检查网络连接');
}
};
gainOpenid();
如果未绑定则跳转:
/**
* 获取微信用户资料
*/
function userDatum() {
try{
ajaxUtil('POST',WEIXIN_USERINFO,{'openid':window.sessionStorage.WEIXIN_OPENID},function(result){
if(result.code == '000') {
$('#usrImg').attr('src', result.data.headimgurl); // 用户头像
$('#usrName').html(result.data.nickname); // 用户微信名称
} else if(result.code == '001') {
mui.toast('请求出错');
}
});
}catch(e){
mui.toast('请检查网络连接');
}
}
userDatum();
/**
* 注册登录账号
* 1、手机号码正则表达式
* 2、验证用户输入手机号码是否符合正则mobileNum();
*/
function isReg(str) {
var reg = /^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))[0-9]{8}$/;
return reg.test(str);
}
function mobileNum(phone) {
if(phone == "" || phone == null) {
// 手机号为空时提示:手机号码不能为空
mui.toast('手机号不能为空');
return false;
} else if(!isReg(phone)) {
mui.toast('请输入正确的手机号');
return false;
}
return true;
}
// 获取验证码
mui('body').on('tap', '#getbtn', function() {
var iphone = $("#userphone").val(); // 获取用户填写的手机号
if(mobileNum(iphone) == true) {
getYzm();
}
})
function getYzm() {
var iphone = $("#userphone").val(); // 获取用户填写的手机号
try {
ajaxUtil('GET',WEIXIN_GETYZM,{'phone':iphone},function(result){
if(result.code == '000') {
window.sessionStorage.WEIXIN_PHONENUM=iphone;
if(result.data.msg != '发送成功') {
time(); //开始倒计时
} else {
mui.toast("验证码已发送,请注意查收");
$('#yzmtwo').val(result.data.yzm);
window.sessionStorage.WEIXIN_YZM=result.data.yzm;
console.log(window.sessionStorage.WEIXIN_YZM)
time();
}
} else {
// 返回结果为1时表示用户手机号码已注册
mui.toast('手机号已注册,您可以直接登录');
}
});
} catch(error) {
mui.toast("请检查网络连接");
}
}
/**
* 提交
*/
mui('body').on('tap', '#input_check', function() {
var phone = mobileNum(window.sessionStorage.WEIXIN_PHONENUM);
if(phone != true) {
return;
}
var yzm = verify(window.sessionStorage.WEIXIN_YZM);
if(yzm != true) {
return;
}
if(phone == true && yzm == true) {
var paramData={
'name':window.sessionStorage.WEIXIN_PHONENUM,
'openid':window.sessionStorage.WEIXIN_OPENID,
'yzm':window.sessionStorage.WEIXIN_YZM,
'password':'1',
'type':'3'
};
try {
//提交按钮
ajaxUtil('POST',WEIXIN_CHECK,paramData,function(result){
if(result.code == '000') {
//window.localStorage.getItem("FROMFUTURE_APP_USRGUID", result.data.usrguid);
if(result.data.code == '1') {
window.sessionStorage.WEIXIN_USRGUID=result.data.usrguid;
G_APP_USRGUID=result.data.usrguid;
window.sessionStorage.WEIXIN_PHONENUM=result.data.acounnt;
mui.toast('绑定过微信');
mui.openWindow({
url: 'myProfile.html',
id: 'myProfile.html'
});
}
if(result.data.code == '2') {
mui.toast('没注册过用户,需要重新注册');
mui.openWindow({
url: 'login.html',
id: 'login.html'
});
}
if(result.data.code == '3') {
window.sessionStorage.WEIXIN_USRGUID=result.data.usrguid;
window.sessionStorage.WEIXIN_PHONENUM=result.data.acounnt;
G_APP_USRGUID=result.data.usrguid;
mui.openWindow({
url: 'registered.html',
id: 'registered.html'
});
}
}
});
} catch(e) {
mui.toast("接口错误,请联系客服" + e);
}
}
});
/**
* 全局变量声明
*/
var iphone;
/**
* 点击获取验证码后显示倒数时间
*/
function time() {
GZ("getbtn").disabled = false; //让按钮可以点击
var btn = GZ("getbtn");
btn.removeAttribute("disabled"); // 让按钮可以点击
btn.value = "获取验证码";
window.sessionStorage.FROMFUTURE_APP_USRTIME = 60;
timeMain = setInterval('djs()', 1000)
}
/**
* 按钮倒计时显示
* @param {Object} num
*/
function djs() {
var btn = GZ("getbtn");
GZ("getbtn").disabled = true; //让按钮不可以点击
var num = window.sessionStorage.FROMFUTURE_APP_USRTIME;
num--;
window.sessionStorage.FROMFUTURE_APP_USRTIME = num;
if(num <= 0) {
clearTimeout(timeMain);
GZ("getbtn").disabled = false; //让按钮可以点击
btn.value = "获取验证码";
} else {
btn.value = "重新发送(" + num + ")";
}
}
/**
* 验证用户输入验证码是否正确
*/
function verify(yzm) {
var yzmtwo = $('#yzmtwo').val();
if(yzm == "" || yzm == null) {
// 手机号为空时提示:手机号码不能为空
mui.toast('验证码不能为空');
return false;
} else if(yzm != yzmtwo) {
mui.toast("验证码错误,请重新输入!");
return false;
}
return true;
}
如果绑定则跳转:
$(function() {
var imgParam = USR_GETIMG + "?guid=" + window.sessionStorage.WEIXIN_USRGUID;
$('#headerImg').attr('src', imgParam);
$('.iphone').html(window.sessionStorage.WEIXIN_PHONENUM);
})