当业务系统产生消息需要通过微信推送给指定的用户时,首页需要将业务系统类的用户和微信账号建立一个关系。这里采用的是 微信网页授权 接口,获得微信用户授权后,获取微信用户的账号信息,并与业务系统的用户进行绑定。
调用微信网页授权首先要设置回调域名,微信关于回调域名的说明有:
1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 >
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
详情请参考微信开发文档
网页链接
openid 是什么 ,一个微信号与一个公众号对应一个固定不变的 openid 。所以一个微信号在一个公众号下的 openid 是不变的,如果换了一个对应的公众号,那就是另一个 openid 了。且只有在微信自带浏览器中打开的项目才可获取到。
UnionID 是什么 ,如果开发者拥有多个移动应用,网站应用,公众号和小程序,可以通过UnionID来区分用户的唯一性,因为只要是同一个微信开发平台账号下的移动应用,网站应用,公众号和小程序,用户的UnionID是唯一的。换句话说,同一个用户,对同一个微信开发平台的不同应用,UnionID是唯一的。
准备条件, 一个公众号、一个外网可访问的域名、该公众号的 AppID 和 AppSecret 、设置网页授权域名(登陆公众平台 设置----->公众号设置------>功能设置----->网页授权域名 按步骤 *** 作并设置就好),这个域名就是你获取openid的web项目发布的域名,这里注意服务器请一定跑在80端口。
参数解释:
注意事项:
参数解释:
注意事项:
返回结果:
access_token 是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用 access_token 。开发者需要进行妥善保存。 access_token 的存储至少要保留512个字符空间。 access_token 的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。
接口说明
参数说明
返回结果
参数解释:
>
开发者可通过OpenID来获取用户基本信息。请使用>
接口调用请求说明:
>
> access_token 是调用接口凭证 openid是普通用户的标识,对当前公众号唯一 正常情况下,微信会返回如图JSON数据包给公众号: 微信公众号如何获取用户基本信息及注意事项 错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误): {"errcode":40013,"errmsg":"invalid appid"} 附上常见错误信息: 40014不合法的access_token,请开发者认真比对access_token的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口 40003 不合法的OpenID,请开发者确认OpenID(该用户)是否已关注公众号,或是否是其他公众号的OpenID 附上简单PHP获取用户信息代码,如图。 微信公众号如何获取用户基本信息及注意事项 官方接口要求: 请注意遵守开发者规范,不要用于非法用途,否则将惩罚直至封号。 关于用户及开发者运营数据的规则如下: 您的服务需要收集用户任何数据的,必须事先获得用户的明确同意,且仅应当收集为运营及功能实现目的而必要的用户数据, 同时应当告知用户相关数据收集的目的、范围及使用方式等,保障用户知情权 您收集用户的数据后,必须采取必要的保护措施,防止用户数据被盗、泄漏等 您在特定微信公众号中收集的用户数据仅可以在该特定微信公众号中使用,不得将其使用在该特定微信公众号之外或为其他任何目的进行使用,也不得以任何方式将其提供给他人 如果腾讯认为您收集、使用用户数据的方式,可能损害用户体验,腾讯有权要求您删除相关数据并不得再以该方式收集、使用用户数据 一旦您停止使用本服务,或腾讯基于任何原因终止您使用本服务,您必须立即删除全部因使用本服务而获得的数据(包括各种备份), 且不得再以任何方式进行使用。
微信链接怎么获取用户openid
:jingyanbaidu/article/48206aeae7aa24216ad6b3f3
对比view和click菜单
{
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"type":"view",
"name":"歌手简介",
"url":":baidu/"
}
从上面可以看出,click类型的菜单有key属性,而view类型的菜单没有key属性,与之对应的是url属性。key值是用于判断用户点击了哪个click类型的菜单项。而view类型的菜单没有key属性,无法在公众账号后台判断是否有用户点击了view类型的菜单项,也就没办法知道哪个用户点击了view类型的菜单项,好在腾讯开放了高级接口,运用OAuth20网页授权接口可以获取openid,下面将介绍网页授权获取用户基本信息接口。
网页授权获取用户基本信息
服务号获得高级接口后,默认带有scope参数中的snsapi_base和snsapi_userinfo。这里使用snsapi_base获取openid,把上面的url换成
配置授权回调页面域名
进入微信公众平台后台后,依次进入 服务-我的服务,找到OAuth20网页授权,
点击右侧的修改
授权回调域名配置规范为全域名并且不带。
这里我们填写上面的ip地址,19216811
用户授权并获取code,把菜单更换成
{
"type":"view",
"name":"歌手简介",
"url":":openweixinqq/connect/oauth2/authorizeappid=wxcd983566d32442bc&redirect_uri=:19216811/weixin/weixindoaction=viewtest&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
}
菜单跳转的action
String code = requestgetParameter("code");我们要的code
code说明 : code作为换取aess_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
使用code换取aess_token
网页授权的作用域为snsapi_base,本步骤中获取到网页授权aess_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。
换取网页授权aess_token页面的构造方式:
:apiweixinqq/sns/oauth2/aess_tokenappid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
正确时返回json数据
{ "aess_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
到此我们成功获取到了用户的openid
php 微信怎样获取用户openid1、要获取openid,必须要通过OAuth20来完成网页授权才能完成的,通过OAuth20来完成网页授权后,在经过用户许可后,就可以通过授权页面,获得用户的openid 2、如何通过OAuth20网页授权呢?要先通过申请高级接口功能 3、申请通过后,还要做一个授权页面,引导用户授权就能获得openid!
微信开发怎么获取用户openid获取微信用户的openid目前有两种方法: 一是先回复一条图文消息,将用户的openid带在链接上,然后用户通过点击图文消息的链接打开最终的页面,这么做用户体验非常非常不好,而且每个菜单都得这么干; 二是调用服务号的高级接口,可是我们大部分都是用订阅号。 怎么通过js获取微信用户的openid: 目前微信服务号在网页获取微信用户openid就这两种方法,订阅号只能通过图文或文本消息打开网页,自己传用户的openid。
微信服务号怎么获取用户的openid通过菜单打开url,在网页页面里获得用户的openid,获取 用户的openid目前有两种方法:一是先回复一条图文消息,将用户的openid带在链接上,然后用户通过点击图文消息的链接打开最终的页面,这么做用户体验非常非常不好,而且每个菜单都得这么干;二是调用服务号的高级接口,可是我们大部分都是用订阅号。那怎么通过js获取 用户的openid?答:目前 服务号在网页获取 用户openid就这两种方法,订阅号只能通过图文或文本消息打开网页,自己传用户的openid。如果 订阅号什么都能做,那划分订阅号与 服务号的意义在哪呢?
微信获取用户openid的方法有哪些方法/步骤
要获取openid,必须要通过OAuth20来完成网页授权才能完成的,通过OAuth20来完成网页授权后,在经过用户许可后,就可以通过授权页面,获得用户的openid
如何通过OAuth20网页授权呢?要先通过申请高级接口功能
申请通过后,还要做一个授权页面,引导用户授权就能获得openid!
微信开发者自动登录怎么获取用户的openid
比如把你的投票放在自定义菜单上,用户点击投票你就能获取到openid了,通过自定义菜单的事件推送就能获取到openid,或者直接用网页授权的方式,这都是服务号才有的权限
微信能不能根据openid获取用户信息具体方法:
1配置网页授权回调域名,如 XXXt
2模拟公众号的第三方网页,:XXX/getcodeurlphp
<php
if(isset($_SESSION['user'])){
print_r($_SESSION['user']);
exit;
}
$APPID='公众号在微信的appid';
$REDIRECT_URI=':XXX/callbackphp';
$scope='snsapi_base';
$scope='snsapi_userinfo';需要授权
$url=':openweixinqq/connect/oauth2/authorizeappid='$APPID'&redirect_uri='urlencode($REDIRECT_URI)'&response_type=code&scope='$scope'&state='$state'#wechat_redirect';
header("Location:"$url);
>
3、第三方网页的回跳url中,首先从请求中取得code,然后根据code进一步换取openid和aess_token,然后就可以根据openid和aess_token调用微信的相关接口查询用户信息了。
<php
:XXX/callbackphp
$appid = "公众号在微信的appid";
$secret = "公众号在微信的app secret";
$code = $_GET["code"];
$get_token_url = ':apiweixinqq/sns/oauth2/aess_tokenappid='$appid'&secret='$secret'&code='$code'&grant_type=authorization_code';
$ch = curl_init();
curl_set($ch,CURLOPT_URL,$get_token_url);
curl_set($ch,CURLOPT_HEADER,0);
curl_set($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_set($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
$json_obj = json_decode($res,true);
根据openid和aess_token查询用户信息
$aess_token = $json_obj['aess_token'];
$openid = $json_obj['openid'];
$get_user_info_url = ':apiweixinqq/sns/userinfoaess_token='$aess_token'&openid='$openid'&lang=zh_CN';
$ch = curl_init();
curl_set($ch,CURLOPT_URL,$get_user_info_url);
curl_set($ch,CURLOPT_HEADER,0);
curl_set($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_set($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
解析json
$user_obj = json_decode($res,true);
$_SESSION['user'] = $user_obj;
print_r($user_obj);
>
微信获取用户头像openid需要字符转化吗方法/步骤
要获取openid,必须要通过OAuth20来完成网页授权才能完成的,通过OAuth20来完成网页授权后,在经过用户许可后,就可以通过授权页面,获得用户的openid
如何通过OAuth20网页授权呢?要先通过申请高级接口功能
申请通过后,还要做一个授权页面,引导用户授权就能获得openid!
应该不需要
怎样获取用户的openid获取微信用户的openid目前有两种方法: 一是先回复一条图文消息,将用户的openid带在链接上,然后用户通过点击图文消息的链接打开最终的页面,这么做用户体验非常非常不好,而且每个菜单都得这么干; 二是调用服务号的高级接口,可是我们大部分
如何获取微信用户openid你好。 根据你的描述,想要通过js获取微信用户的openid 你的公众号必须必须通过微信认证(付钱的那个,300元每年)才可以,这样在高级开发模式里面会有接口给你实现
以上就是关于微信公众号开发(二)--扫码绑定微信账号全部的内容,包括:微信公众号开发(二)--扫码绑定微信账号、PHP如何获得微信公众平台关注用户的基本信息、微信公众号开发 - 静默授权获取用户信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)