微信小程序> unionid,微信小程序获取unionId

unionid,微信小程序获取unionId

浏览量:1058 时间: 来源:钻石王小二吼吼吼
获取unionid一定要先在绑定小程序,否则没办法获取到
UnionID机制说明如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
获取UnionID问题:按照官网,接口并未返回unionId微信小程序文档称:
以上是微信文档的内容
解决:通过解密wx.getUserInfo返回的encryptedData来获取调用wx.getUserInfo返回的数据:解析(直接附代码,php为例):官网可demo.php
?phpinclude_once"wxBizDataCrypt.php";#此文件见下方#小程序appid$appid='';#获取openid的那个网址一起返回的#地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code$sessionKey='==';#上图getuserinfo接口里返回的数据$encryptedData="";$iv="itlTkVR76itBgo4cNNlB1w==";$pc=newWXBizDataCrypt($appid,$sessionKey);$errCode=$pc-decryptData($encryptedData,$iv,$data);if($errCode==0){print($data."");}else{print($errCode."");}?wxBizDataCrypt.php
?php/对微信小程序用户加密数据的解密示例代码.@copyrightCopyright(c)1998-2014TencentInc./include_once"errorCode.php";classWXBizDataCrypt{private$appid;private$sessionKey;/构造函数@param$sessionKeystring用户在小程序登录后获取的会话密钥@param$appidstring小程序的appid/publicfunction__construct($appid,$sessionKey){$this-sessionKey=$sessionKey;$this-appid=$appid;}/检验数据的真实性,并且获取解密后的明文.@param$encryptedDatastring加密的用户数据@param$ivstring与用户数据一同返回的初始向量@param$datastring解密后的原文@returnint成功0,失败返回对应的错误码/publicfunctiondecryptData($encryptedData,$iv,&$data){if(strlen($this-sessionKey)!=24){returnErrorCode::$IllegalAesKey;}$aesKey=base64_decode($this-sessionKey);if(strlen($iv)!=24){returnErrorCode::$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==NULL){returnErrorCode::$IllegalBuffer;}if($dataObj-watermark-appid!=$this-appid){returnErrorCode::$IllegalBuffer;}$data=$result;returnErrorCode::$OK;}}errorCode.php
?php/errorcode说明.ulli-41001:encodingAesKey非法/lili-41003:aes解密失败/lili-41004:解密后得到的buffer非法/lili-41005:base64加密失败/lili-41016:base64解密失败/li/ul/classErrorCode{publicstatic$OK=0;publicstatic$IllegalAesKey=-41001;publicstatic$IllegalIv=-41002;publicstatic$IllegalBuffer=-41003;publicstatic$DecodeBase64Error=-41004;}?解析的结果如下
结束
获取unionid一定要先在绑定小程序,否则没办法获取到

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎