微信公众号怎么发文章获取微信的unionid

微信小程序获取unionId
获取unionid一定要先在绑定小程序,否则没办法获取到
UnionID机制说明
如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
获取UnionID
问题:按照官网,接口并未返回unionId
微信小程序文档称:
以上是微信文档的内容
通过解密wx.getUserInfo返回的 encryptedData来获取
调用wx.getUserInfo返回的数据:
解析(直接附代码,php为例):
include_once "wxBizDataCrypt.php";
$appid = '*********';
$sessionKey = '***************==';
$encryptedData="****";
$iv = "itlTkVR76itBgo4cNNlB1w==";
$pc = new WXBizDataCrypt($appid, $sessionKey);
$errCode = $pc-&decryptData($encryptedData, $iv, $data );
if ($errCode == 0) {
print($data . "\n");
print($errCode . "\n");
wxBizDataCrypt.php
* 对微信小程序用户加密数据的解密示例代码.
* @copyright Copyright (c)
Tencent Inc.
include_once "errorCode.php";
class WXBizDataCrypt
private $appid;
private $sessionKey;
$sessionKey string 用户在小程序登录后获取的会话密钥
* @param $appid string 小程序的appid
public function __construct( $appid, $sessionKey)
$this-&sessionKey = $sessionKey;
$this-&appid = $appid;
$encryptedData string 加密的用户数据
* @param $iv string 与用户数据一同返回的初始向量
* @param $data string 解密后的原文
* @return int 成功0,失败返回对应的错误码
public function decryptData( $encryptedData, $iv, &$data )
if (strlen($this-&sessionKey) != 24) {
return ErrorCode::$IllegalAesKey;
$aesKey=base64_decode($this-&sessionKey);
if (strlen($iv) != 24) {
return ErrorCode::$IllegalIv;
$aesIV=base64_decode($iv);
$aesCipher=base64_decode($encryptedData);
$result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
$dataObj=json_decode( $result );
if( $dataObj
return ErrorCode::$IllegalBuffer;
if( $dataObj-&watermark-&appid != $this-&appid )
return ErrorCode::$IllegalBuffer;
$data = $result;
return ErrorCode::$OK;
errorCode.php
* error code 说明.
&li&-41001: encodingAesKey 非法&/li&
&li&-41003: aes 解密失败&/li&
&li&-41004: 解密后得到的buffer非法&/li&
&li&-41005: base64加密失败&/li&
&li&-41016: base64解密失败&/li&
class ErrorCode
public static $OK = 0;
public static $IllegalAesKey = -41001;
public static $IllegalIv = -41002;
public static $IllegalBuffer = -41003;
public static $DecodeBase64Error = -41004;
解析的结果如下
获取unionid一定要先在绑定小程序,否则没办法获取到
没有更多推荐了,详解微信小程序 登录获取unionid
转载 &更新时间:日 10:10:40 & 投稿:lqh
这篇文章主要介绍了详解微信小程序 登录获取unionid的相关资料,需要的朋友可以参考下
详解微信小程序 登录获取unionid
首先公司开发了小程序, 公众号网页和app等, 之前都是用的openid来区分用户, 但openid只能标识用户在当前小程序或公众号里唯一, 我们希望用户可以在公司各个产品(比如公众号, 小程序, app里的微信登录)之间, 可以保持用户的唯一性, 还好微信给出了unionid.
下面分两步介绍一下 微信小程序 获取unionid的过程.
1. 首先 在微信公众平台注册小程序 , 然后在小程序上模拟登录流程.
注 : 这里只是简单登录流程, 实际中需要维护登录态, wx.checkSession() 可以检查此时的登录态是否过期. 若过期, 要再次调用 wx.login() , 否则调用 wx.getUserInfo() 会拿不到用户数据.
注 : 此时后台服务器接收到你发的 code, 再用appid和appSecret等请求微信可以拿到openid和session_key encrypted_data, iv 等数据, 通过appId, appSecret解密可以获得openid和其他信息. (此时解出来并没有unionid, 接下来看第二步)
2. 接下来到 微信开发平台去 绑定开发账号.
一开始我也是对开放平台, 公众平台什么的有点懵, 后来看到开发平台的管理中心才明白,& 这些移动应用, 网站应用 或者公众号/小程序 能绑定同一个微信开发平台账号下, 则同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
大抵就是上图这样设置吧 , 立刻生效(有时也会过几分钟吧
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具微信 unionid 获取
时间: 10:21:30
&&&& 阅读:200
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&1.申请注册微信开放平台&&open.weixin.qq.com
2.绑定公众号或者小程序到微信开放平台&
3.微信公众号的话,使用微信网页授权获取 unionid&
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp
4.小程序的话,获取unionid的几种方式
https://developers.weixin.qq.com/miniprogram/dev/api/unionID.html
其中小程序获取的第一种方法解密 示例参考 丹溪运动小程序的处理方式
注:unionid 是同一用户在使用微信平台下的不同产品所产生的id,用于跨产品区分用户 。
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文地址:https://www.cnblogs.com/lvfish/p/9006635.html
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!12 条评论分享收藏感谢收起亲爱的开发者朋友:我们很高兴和大家分享一个消息,团队正式启用Mob.com顶级域名,Mob即Mobile缩写,全面转型为移动
[ShareSDK getUserInfo:SSDKPlatformTypeWechat
& && && &&&onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
& &&&{
& && && &if (state == SSDKResponseStateSuccess)
& && && &{
& && && && & NSLog(@&uid=%@&,user.uid);
& && && && & NSLog(@&%@&,user.credential);
& && && && & NSLog(@&token=%@&,user.credential.token);
& && && && & NSLog(@&nickname=%@&,user.nickname);
& && && &}
& && && &else
& && && && && &&&{
& && && && && && && &NSLog(@&%@&,error);
& && && && && &&&}
& &&&}]; 复制代码user.uid 是Openid 还是Unionid 如果是openid 如何获取unionid
uid就是opened,我们统一把openid写成了did,您可以获取整个第三方返回的用户信息,然后自己在里面获取到这个unionid的&&NSDictionary * doc = user.rawD
& && && && & NSLog(@&%@&,[doc objectForKey&unionid&]);
免费咨询 | 24小时在线

我要回帖

更多关于 恢复微信 的文章

 

随机推荐