微信登录

1、首先引入

2、使用auth方法

3、配置

3 - 1
首页需要到微信开放平台去申请审核 https://open.weixin.qq.com/

注:如果需要ios 和 安卓 使用,请注意上图 将ios和android应用都勾选上

4、auth方法成功之后,使用getToken方法

5、在使用getToken方法成功后,使用getUserInfo方法

将获取到的用户信息按需要逻辑处理


附上小编的项目代码
小编的代码有处理是否绑定的逻辑以及登录等,大家只需参考wx登录部分即可
html部分

<div class="aui-col-xs-2"  style="text-align: center;" tapmode onclick="wxauth()">
	<i class="iconfont icon-liaotian icon_bg2"></i>
	<div class="aui-grid-label"  style="display:block;margin-top:10px;">微信</div>
</div>

js部分

//微信登录
	function wxauth() {
		api.showProgress({
			style: "default",
			animationType: "fade",
			title: "",
			text: "启动中...",
			modal: false
		});
		var wx = api.require("wx");
		wx.auth({
			apiKey: "wx***********"
		}, function(ret, err) {
			api.hideProgress();
			if (ret) {
				if (ret.status) {
					var code = ret.code;
					getToken(code);
				} else {
					api.toast({
						msg: "错误",
						duration: 2000,
						location: "middle"
					});
				}
			} else {
				switch(err.code) {
					case -1:
						api.toast({
							msg: "未知错误",
							duration: 2000,
							location: "middle"
						});
						break;
					case 1:
						api.toast({
							msg: "用户取消",
							duration: 2000,
							location: "middle"
						});
						break;
					case 2:
						api.toast({
							msg: "用户拒绝授权",
							duration: 2000,
							location: "middle"
						});
						break;
					case 3:
						api.toast({
							msg: "当前设备未安装微信客户端",
							duration: 2000,
							location: "middle"
						});
						break;
				}
			}
		});
	}
/**
	 * [getToken 获取用户token]
	 * @param  {[type]} code [授权成功后返回code 参数]
	 * @return {[type]}      [description]
	 */
	function getToken(code) {
		var wx = api.require("wx");
		wx.getToken({
			apiKey: "",
			apiSecret: "",
			code: code
		}, function(ret, err) {
			if (ret) {
				if (ret.status) {
					var accessToken=ret.accessToken;
					var dynamicToken=ret.dynamicToken;
					var openId=ret.openId;
					getUserInfo(accessToken,openId);
				} else {
					api.toast({
						msg: "错误",
						duration: 2000,
						location: "middle"
					});
				}
			} else {
				switch(err.code) {
					case -1:
						api.toast({
							msg: "未知错误",
							duration: 2000,
							location: "middle"
						});
						break;
					case 1:
						api.toast({
							msg: "apiKey值为空或非法",
							duration: 2000,
							location: "middle"
						});
						break;
					case 2:
						api.toast({
							msg: "apiSecret值为空或非法",
							duration: 2000,
							location: "middle"
						});
						break;
					case 3:
						api.toast({
							msg: "code值为空或非法",
							duration: 2000,
							location: "middle"
						});
						break;
					case 4:
						api.toast({
							msg: "网络超时",
							duration: 2000,
							location: "middle"
						});
						break;
				}
			}
		});
	}
/**
	 * [getUserInfo 获取用户信息]
	 * @param  {[type]} accessToken [getToken 接口或 refreshToken 接口成功获取的 accessToken 值]
	 * @param  {[type]} openId      [getToken 接口或 refreshToken 接口成功获取的 openId 值]
	 */
	function getUserInfo(accessToken,openId) {
		var wx = api.require("wx");
		wx.getUserInfo({
			accessToken: accessToken,
			openId: openId
		}, function(ret, err) {
			if (ret) {
				if (ret.status) {
					var openid=ret.openid,
					      unionid = ret.unionid,
					      nickname=ret.nickname,
					      head_pic=ret.headimgurl,
					      source="weixin";
					api.ajax({
						url: domainName + "/index.php?g=User&m=Api&a=thirdLogin",
						method: "post",
						data: {
							values: {
								openid: openid,
								unionid: unionid,
								nickname: nickname,
								head_pic: head_pic,
								source: source
							}
						}
					}, function(ret, err) {
						if (ret) {
							if (ret.msg == "0") { //已经存在该用户信息
								if (ret.binding_status == "1") {   /*1:未绑定 2已绑定*/
									//未绑定,到绑定页面
									api.openWin({
										name: "user_binding_win",
										url: "./user_binding_win.html",
										pageParam: {
											openid: openid,
											source: source
										}
									});
								} else {
									//已绑定,到登录页面
									userInfoAll(openid,source);
									api.openWin({
										name: "index",
										url: "../main.html"
									});

								}
							} else if (ret.msg == "1"){ //添加用户信息成功
								api.openWin({
									name: "user_binding_win",
									url: "./user_binding_win.html",
									pageParam: {
										openid: openid
									}
								});
							} else if (ret.msg =="2"){
								api.toast({
								    msg: "添加用户失败",
								    duration: 2000,
								    location: "bottom"
								});
							} else {
								api.toast({
								    msg: "未知错误",
								    duration: 2000,
								    location: "bottom"
								});
							}
						} else {
							api.toast({
								msg: "未知错误",
								duration: 2000,
								location: "middle"
							});
						}
					});
				} else {
					api.toast({
						msg: "错误",
						duration: 2000,
						location: "middle"
					});
				}
			} else {
				switch(err.code) {
					case -1:
						api.toast({
							msg: "未知错误",
							duration: 2000,
							location: "middle"
						});
						break;
					case 1:
						api.toast({
							msg: "accessToken 过期",
							duration: 2000,
							location: "middle"
						});
						break;
					case 2:
						api.toast({
							msg: "openId非法",
							duration: 2000,
							location: "middle"
						});
						break;
					case 3:
						api.toast({
							msg: "openId值为空",
							duration: 2000,
							location: "middle"
						});
						break;
					case 4:
						api.toast({
							msg: "accessToken值为空",
							duration: 2000,
							location: "middle"
						});
						break;
					case 5:
						api.toast({
							msg: "accessToken非法",
							duration: 2000,
							location: "middle"
						});
						break;
					case 6:
						api.toast({
							msg: "网络超时",
							duration: 2000,
							location: "middle"
						});
						break;
				}
			}
		});
	}
文章导航