微信小程序----手机号授权操作

实现功能:通过点击授权按钮手机号会自动加载到对应的文本框中

下面以预约记录的模块来展示:

 

后端代码

手机号授权的操作步骤都是一样的可以直接复制

        public string GetPhone(string code,
            string encryptedData, string iv, int userid)
        {
            try
            {
                ConfigInfo info = ConfigInfo.GetConfig();
                string url = string.Format($"https://api.weixin.qq.com/sns/jscode2session?appid={info.AppID}&secret={info.AppSecret}&js_code={code}&grant_type=authorization_code");
                string str = NetHelper.Get(url);
                if (str.Contains("invalid code"))
                    throw new Exception("code失效");

                JObject jobj = JObject.Parse(str);
                string sessionKey = jobj.SelectToken("session_key").ToString();
                if (string.IsNullOrEmpty(sessionKey))
                    throw new Exception("获取session_key失败");
                AESHelper.AesIV = iv;
                AESHelper.AesKey = sessionKey;

                string result = AESHelper.AESDecrypt(encryptedData);
                //解析修改会员的手机号
                JObject json = JObject.Parse(result);
                //string pureNumber = json.SelectToken("purePhoneNumber").ToString();
                return result;
            }
            catch (Exception ex)
            {
                return "授权失败:" + ex.Message;
            }
        }

 

html

在button按钮中加入ope-type

<button style="width:50px;" open-type="getPhoneNumber" bindgetphonenumber="getNumberClick" >授权</button>

 

js

在data中设置数据

 

调用button定义的按钮设置手机号操作,线条中的内容是为为例把数值提交到表单写的

		//获取手机号
		getNumberClick(e) {
			var _this = this;
			var userInfo = _this.data.info;
			e.detail.code = _this.data.mcode;
			account.getPhone(e, res => {
				// 存储手机号
				var uform = {}
				if (res.indexOf('授权失败') != -1 || res == null) {
					wx.showToast({
						title: '授权失败',
					})
				} else {
					res = JSON.parse(res);
					uform.mobile = res.phoneNumber;
					// console.info(uform.mobile)
					_this.setData({
						'form.mobile':uform.mobile
					})
				}
				wx.setStorageSync('phone', res.phoneNumber);
			})
		},

 在onshow里面设置数据

在utils中设置获取后端接口的操作

可以去微信开发者工具参考

https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-info/phone-number/getPhoneNumber.html

 

posted on 2023-03-27 18:56  昨夜小楼听风雨  阅读(840)  评论(0编辑  收藏  举报