微信授权登陆绑定

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);
})

  

原文地址:https://www.cnblogs.com/rockyan/p/8136919.html

时间: 2025-02-01 11:51:48

微信授权登陆绑定的相关文章

微信授权登陆

一.前沿:很多时候,我们都需要开发微信功能来实现我们的项目的功能逻辑,微信授权登陆方面的肯定也不少,所以我就封装了个简单的方法来实现,以方便后面使用. 二.流程文档 微信开发者文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 大概就是5个步骤: 1 :用户同意授权,获取code 2 :通过code换取网页授权access_token 3 :刷新access_token(如果需要) 4 :拉取用户信息(需sco

微信授权登陆接入第三方App(步骤总结)Android

微信授权登陆接入第三方App(步骤总结)Android

微信授权登陆遇到的那些坑

第一次玩这个,发个今天遇到的大坑大家高兴高兴.今天做微信授权登陆,那叫一个水深火热啊,一直遇到这个问题 编译出现错误:linker command failed with exit code 1 本宝宝各种百度,网上说的一个比较全的是 http://www.cocoachina.com/bbs/read.php?tid=268353,然而没有一个适合我.我一步一步按微信官方文档做的就是一直报错,可是官网提供的例子却很顺利的运行,我也是醉了.被逼无奈之下直接把例子里的.a文件替换了官网提供的.a文

微信授权登陆接入第三方App(步骤总结)Android。

这几天开发要用到微信授权的功能,所以就研究了一下.可是微信开放平台接入指南里有几个地方写的不清不楚.在此总结一下,以便需要的人. 很多微信公众平台的应用如果移植到app上的话就需要微信授权登陆了. 目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用.也就是如果第三方应用需要微信授权登陆的话就必须在本机上安装了微信.而后续授权登陆或调用接口之类的相当于app和微信两个应用之间通话. 1.首先需要注册微信开放平台,然后获取开发者认证.审批通过之后再创建一个移动应用同样还是

(转)php-curl响应慢(开发微信授权登陆时碰到的问题)

最近在做一个php小项目的时候,发现curl调用微信的授权api.weixin.qq.com,经常是需要等待很久,但是有时候却很快. 刚开始以为是网络慢问题,没去注意.后面通过打上时间日志观察发现,慢的时候基本是在5秒.既然那么有规律了,那肯定是有某个问题的. http请求的初始过程是什么呢?dns解析. 通过ping和wget命令,发现确实在域名解析的那个过程很慢.所以,最终在host直接写死域名,解决了这个问题. 为什么是5秒呢? 我们知道配置dns服务的地址在/etc/resolv.con

微信授权登陆获取用户信息

根据微信api和自己实际项目开发: 1 public function getuserinfo() 2 { 3 if (isset($_GET['code'])) { 4 //获取access_token openid refresh_token 5 $url1 = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $this->appid . '&secret=' . $this->secret . '&

第三方登陆:微信官方登陆

微信官方登陆 一.首先进入微信授权登陆之前的一个验证,在微信开放平台注册开发者账号,并拥有一个已经审核通过的移动应用,获得相应的AppID和AppSecrect,申请微信通过审核后(如下如)可开始植入工程的相关流程. 二.下载最新的SDK,链接如下:iOS SDK下载 下载下来的SDK如下图: 1.libWeChatSDK.a  : 静态库,直接拖入工程中使用的: 2.README.txt : 重要内容,一些最新SDK版本的说明和安装配置 3.WechatAuthSDK.h :授权SDK 4.W

vue 微信授权解决方案

背景 vue前后端分离开发微信授权2018-08-14更新时隔四个月第一次更新,因为项目重构有一次接触到了微信授权,思路已经比原来清晰的多了,将重新修改一下整个文章 场景 app将商品分享到微信朋友圈或者分享给微信好友,用户点击页面时进行微信授权登陆,获取用户信息.问题:没有固定的h5应用首页,回调不能到index.授权后重定向url带参数并且很长 本人愚钝,开发过程中,尝试过很多方法,踩坑不足以形容我的心情,可以说每一次都是一次跳井的体验啊. 1.一开始尝试的方式是前端请求微信连接,返回cod

小程序授权登陆解决方案

前言 之前写过一个关于微信授权登陆的文章传送门最近在做小程序的项目,依旧是商城,又开始研究微信的登陆授权坑,第一次接触小程序,授权登陆也是一塌糊涂以后再慢慢的改进 场景 微信用户可以通过搜索进入小程序也可以通过别人分享进入小程序进入小程序之后需要用户授权拿到用户信息进行注册 代码实现 初始化页面home页用户第一次进入小程序必须授权后台注册并登陆app.json { "pages": [ "pages/home/index", "pages/login/i