当前位置:首页 >> 编程语言 >> 【uniapp】小程序开发5:获取openid、获取手机号,索尼笔记本电脑报价大全

【uniapp】小程序开发5:获取openid、获取手机号,索尼笔记本电脑报价大全

cpugpu芯片开发光刻机 编程语言 3
文件名:【uniapp】小程序开发5:获取openid、获取手机号,索尼笔记本电脑报价大全 【uniapp】小程序开发5:获取openid、获取手机号 一、获取小程序openid

需要配合后端接口获取授权码(code)

1)调用uni.login()方法获取授权code,并把code传给getOpenid

//使用uni.login的时候可以在任何接口下使用即可,主要看打印出来的code值和openidlet that = thisuni.login({provider: 'weixin',success: function (loginRes) {getOpenid(loginRes.code).then(res=>{console.log('getOpenid',res)that.openId = res.data.openIdthat.userInfo.openId = that.openIdthat.$store.commit('setUserInfo', that.userInfo)})}});

2)方式一、从后端接口获取openId

从后端接口获取openid

function getOpenid(code) {const baseUrl = process.env.VUE_APP_URL;return new Promise(function (resolve, reject) {let url = baseUrl + '/api/open/weixin/getOauth2Code2Session'uni.request({url: url,data: {appId: process.env.VUE_APP_APPID,code: code},method: 'POST',success: (res) => {console.log('getOauth2Code2Session', res);resolve(res)}})})}

3)方式二、纯前端写法获取openId

function getOpenid(code) {return new Promise(function (resolve, reject) {let appid = config.appidlet secret = config.secretlet url = `https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${secret}&js_code=${code}&grant_type=authorization_code`wx.request({url: url,success: (res) => {let openid = res.data.openid;// console.log('openid', openid);resolve(openid)}})})} 二、获取手机号

1)增加后端接口获取手机号,类似如下代码

//得到用户手机号private static final String GET_USER_PHONENUMBER="https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=";/*** 得到用户手机号* @return* @throws WeChatException*/public UserPhone getUserPhonenumber(String code) throws WeChatException{JSONObject groupJson =new JSONObject();groupJson.put("code", code);String requestData=groupJson.toString();logger.info("request data "+requestData);String resultStr = HttpUtils.post(GET_USER_PHONENUMBER+TokenProxy.accessToken(), requestData);logger.info("return data "+resultStr);WeChatUtil.isSuccess(resultStr);return JSONObject.parseObject(resultStr).getObject("phone_info", UserPhone.class);}@Datapublic class UserPhone {private String countryCode;private String phoneNumber;private String purePhoneNumber;}

2)增加vue页面文件中增加获取手机号权限代码 open-type="getPhoneNumber"

<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"style="width: 100%;margin-top: 20px;"><text style="width: 100%;font-size: 20px;">点击授权获取手机号</text></button>

3)在vue中增加方法调用后端接口获取手机号

getPhoneNumber(res) {console.log('获取用户手机号:', res)this.getUserphonenumber(res.detail.code)},// 获取手机号getUserphonenumber(code).then(res2 => {let phoneNunber;if (res2.data) {phoneNunber = res2.data.phoneNumber;}if (!phoneNunber) {wx.showToast({title: '没取到手机号',icon: 'none'})return;}console.log('phoneNumber', phoneNunber)})
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接