uni-app (其他框架类似) 小程序 获得微信绑定的手机号码

2,021 阅读1分钟

一、需要准备的条件


  var APPID = 'wx10xxxxxxxxx50a'; //  小程序的APPID
  var SECRET = 'ee83ae7xxxxxxxxxcxxae50dd1bac'; //  小程序的SECRET
  var WX_AUTH_URL = 'https://api.weixin.qq.com/sns/jscode2session'; // 小程序提供
  
  //微信提供的解密函数,请修改为你自己的路径  
  var WXBizDataCrypt = require('./WXBizDataCrypt.js');
 

WXBizDataCrypt 下载地址

  • 第一步 页面上添加获取电话号码的按钮
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">获取电话号码</button>
  • 第二步 获取到 code值
    var that = this;
	uni.login({
		success: function(res) {
			// 获取code
			that.login_code = res.code;
		}
	});
  • 第三步 请求解密后获得电话号码
 getPhoneNumber(e) {
	var encryptedData = e.detail.encryptedData; 
	var iv = e.detail.iv;
			
	var APPID = 'wx10xxxxx3950a';
	var SECRET = 'ee83ae75axxxxe50dd1bac';
	var WX_AUTH_URL = 'https://api.weixin.qq.com/sns/jscode2session';
	
	var wx_author_url = WX_AUTH_URL + '?appid=' + APPID +
	'&secret=' + SECRET + '&js_code=' + this.login_code +
	'&grant_type=authorization_code';
	
	uni.request({
		url: wx_author_url,
		success(re) {
    		var appId = APPID;
    		var sessionKey = re.data.session_key;
    		var pc = new WXBizDataCrypt(appId, sessionKey);
    		var data = pc.decryptData(encryptedData, iv);
    		console.log('解密后 data: ', data);
		}
	});
}