微信小程序 获取OpenId
微信小程序 官方API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/
首先 以下代码是 页面加载请求用户 是否同意授权 同意之后 用code 访问 微信接口 拿到OpenId
//页面加载 微信授权
var getInfo = function (thisObj){
var that = thisObj;
wx.login({
success: function (res) {
if (res.code) {
//获取openId
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
//小程序唯一标识
appid: '',
//小程序的 app secret
secret: '',
grant_type: 'authorization_code',
js_code: res.code
},
method: 'GET',
header: { 'content-type': 'application/json'},
success: function(openIdRes){
console.info("登录成功返回的openId:" + openIdRes.data.openid);
weChatUserInfo.openId = openIdRes.data.openid;
// 判断openId是否获取成功
if (openIdRes.data.openid != null & openIdRes.data.openid != undefined) {
// 有一点需要注意 询问用户 是否授权 那提示 是这API发出的
wx.getUserInfo({
success: function (data) {
// 自定义操作
// 绑定数据,渲染页面
that.setData({ });
},
fail: function (failData) {
console.info("用户拒绝授权");
}
});
}else {
console.info("获取用户openId失败");
}
},
fail: function(error) {
console.info("获取用户openId失败");
console.info(error);
}
})
}
}
});
}
以下是 手动配置 打开 微信授权
//手动打开微信授权
var getInfoAgain = function (thisObj){
var that = thisObj;
wx.openSetting({
success: function (data) {
//判断 用户是否同意授权
if (data.authSetting["scope.userInfo"] == true) {
// 同意授权
wx.login({
success: function (res) {
if (res.code) {
console.info("登录成功返回的CODE:" + res.code);
//获取openId
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
// 小程序唯一标示
appid: '',
// 小程序的 app secret
secret: '',
grant_type: 'authorization_code',
js_code: res.code
},
method: 'GET',
header: { 'content-type': 'application/json' },
success: function (openIdRes) {
// 获取到 openId
console.log(openIdRes.data.openid);
// 判断openId是否为空
if (openIdRes.data.openid != null & openIdRes.data.openid != undefined) {
wx.getUserInfo({
success: function (data) {
// 自定义操作
// 绑定数据,渲染页面
that.setData({ });
}
})
}else {
// openId为空
}
}
})
}
}
});
}else {
// 手动 开启 是否授权提示框后 拒绝
}
}
});
}
//TODO 有个地方需要注意一下 小程序开发者工具 有一个配置

这个配置 如果打开 不验证域名 都可以访问
但是 这只是开发者工具 可以访问 以及手机预览 可以访问
如果放到正式版的环境 或者说 测试版的环境 那么 是不可以访问除了 设置好的域名以外 所有的域名 需要将 微信接口 (https://api.weixin.qq.com) 设置到 小程序白名单中 否则 获取不到OpenId 返回undefined
微信小程序 获取OpenId的更多相关文章
- C# 微信小程序获取openid sessionkey
项目介绍 1.微信小程序获取openid和session_key 2.后台使用C#开发 项目流程 准备工作 1 获取appid 1.1 下载微信web开发工具 https://developers.w ...
- 微信小程序——获取openid
1.在微信小程序后台得到appid.AppSecret 2.在任意小程序界面的[onLoad]中取得code(建议将代码写在index.js中) 3.用取得code换取openid 如后台无法将ope ...
- laravel7 微信小程序获取openid
l 通过微信公众号获取appid和appsecret l 在小程序页面中编写代码获取code l 在后端编写方法,换取openid l 添加一个按钮,给按钮一个开放能力 open-type=" ...
- .NET开发微信小程序-获取OpenId
注:获取当前用户信息只需要用GetUserInfo这个方法就行.这里就不需要提了 前端代码: CallBack:回调函数 function GetOpenID(CallBack){ var appIn ...
- 微信小程序 获取用户openid
1,可以在小程序app.js入口文件中放入登录代码 wx.login({ success: res => { // 登录注册接口 if (res.code) { // 调用服务端登录接口,发送 ...
- 微信小程序获取微信的openid
通过登录接口获取登录凭证,然后通过request请求后台获取openid,需要把后台域名放到小程序后台的request 合法域名内: 1.wx.login 获取登录凭证 2.wx.request 发 ...
- 小程序获取openid 小程序授权
小程序获取openid 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. wx.login(Object object) 调用接口获取登录凭证(cod ...
- .Net之微信小程序获取用户UnionID
前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一(便于用户信息的管理).这段时间就有一个这样的需求,之前有个客户做了一个微信小程序 ...
- 微信小程序获取手机号码看这篇文章就够了
前言 微信小程序获取手机号码,从官方文档到其他博主的文档 零零散散的 (我就是这样看过来 没有一篇满意的 也许是我搜索姿势不对) 依旧是前人栽树 后人乘凉 系列.保证看完 就可以实现获取手机号码功能 ...
随机推荐
- 【PAT_Basic日记】1004 成绩排名
至今仍然存在问题,第一个测试点不过 #include <stdio.h> #include <stdlib.h> #include <string.h> typed ...
- LINQ to XML编程之编程基础
1.声明,LINQ to XML让xml的创建变得非常简单. XDocument myDocument = new XDocument( new XDeclaration("1.0" ...
- stm32中的延时函数
//粗延时函数,微秒 void delay_nus(u16 time) { u16 i=0; while(time--) { i=10; //自己定义 while(i--) ; } } //毫秒级的 ...
- HTML和CSS的知识点
HTML的知识点 HTML的结构: <!DOCTYPE html>: 文档类型性为HTML5文件 文档声明:在HTML的文档中必不可少,且必须在文档的第一行 文档声明的编码格式<!- ...
- JS设计模式---缓存代理
缓存代理可以为一些开销大的运算结果提供暂时的存储,在下次运算的时候,传进来的参数跟上次是一致, 则可以直接返回前面存储的结果. 运行上面的代码我们发现,当第二次再调用proxyMult(1,2,3)的 ...
- 使用Spigot搭建MineCraft服务器
MineCraft 这种游戏还是人多了好玩,以前的服务器放在同学的Windows电脑上,每次我们想玩的时候就让让去打开,但是总是有一些原因,想玩的时候服务器没开着,不想玩的时候服务器空开着费电.昨天一 ...
- 【算法系列学习】HDU 5527 Too Rich贪心
http://www.cnblogs.com/AOQNRMGYXLMV/p/4934747.html #include<iostream> #include<cstdio> # ...
- PHP学习笔记-2
PHP 是一门弱类型语言: 在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型.(跟Javascript很像啊!) PHP 会根据变量的值,自动把变量转换为正确的数据类型. 在强类型的编 ...
- openlayers应用(二):加载百度离线瓦片
上一篇文章介绍了使用openlayers3加载百度在线地图,对某些项目或应用场景比如不允许上外网的单位,某些项目只针对一定区域地图加载应用,比如一个县的地图,可以采用下载百度瓦片地图,在服务器或者本机 ...
- java 对时间(Date)随笔!
/** * 获取系统当前时间 * @return 系统当前时间 */ public static Date now() { return new Date(); } /** * 根据指定的日期,获取其 ...