微信小程序> 微信斗牛群,微信小程序获取opengid和群名称

微信斗牛群,微信小程序获取opengid和群名称

浏览量:711 时间: 来源:易伟律师
小程序开放了微信群能力,获取groupid是第一步,相关组件在组件的开放数据中,获取open-gid(微信群的groupid)就会自动获取群名称。
open-datatype="groupName"open-gid="xxxxxx"/open-data
open-gid通过wx.getShareInfo带参数shareTicket(页面内分享可获取)的callback得到加密数据encryptedData,经解密后即可获得。encryptedData解密需要appid,sessionKey,iv。sessionKey需要通过
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
其中的JSCODE需要调用wx.login获取。解密需要在服务器端进行。
App.js代码如下:定义全局变量sessionKey
App({
globalData:{
sessionKey:null,
}
,
onLaunch:function(ops){
console.log(ops)
varthat=this
wx.login({
success:function(res){
console.log(res)//使用这个code向微信换取session_key
varjs_code=res.code
wx.request({
url:'http://www.st122.cn/xcx/php/getsec.php',//仅为示例,并非真实的接口地址
data:{
code:js_code,
},
success:function(res){
console.log(res.data)
that.globalData.sessionKey=res.data
}
})
}
})
}
})
hello.js文件如下,注意解密后的数据类型为str需转为obj。
varapp=getApp()
Page({
onShareAppMessage:function(res){
varthat=this
if(res.from==='button'){
//来自页面内转发按钮
console.log(res)
console.log(app.globalData.sessionKey)
}
wx.showShareMenu({
withShareTicket:true
})
return{
title:'获取本群名称',
path:'/pages/hello/hello',
success:function(res){
//转发成功
console.log()
varticket=res.shareTickets[0]
wx.getShareInfo({
shareTicket:ticket,
success:function(res){
console.log(res)
varencrypt=res.encryptedData
variv=res.iv
wx.request({
url:'http://www.st122.cn/xcx/php/demo.php',//仅为示例,并非真实的接口地址
data:{
encrypt:encrypt,
iv:iv,
sessionKey:app.globalData.sessionKey
},
success:function(res){
console.log(res)
console.log(res.data)
varx=res.data;
console.log(typeof(x))
vary=eval('('+x+')');
console.log(typeof(y))
varopenGId=y.openGId
console.log(y.openGId)
that.setData({
id:openGId,
gid:openGId,
})
},
})
},
})
},
}
}
})
服务器端getsec.php
$appid='';
$secret='';
$js_code=$_GET["code"];
$url="https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$js_code}&grant_type=authorization_code";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//无需https校验
$a=curl_exec($ch);
$strjson=json_decode($a);
$sessionKey=$strjson-session_key;
echo$sessionKey;
demo.php
include_once"wxBizDataCrypt.php";
$appid='';
$secret='';
$sessionKey=$_GET["sessionKey"];
$encryptedData=$_GET["encrypt"];
$iv=$_GET["iv"];
$pc=newWXBizDataCrypt($appid,$sessionKey);
$errCode=$pc-decryptData($encryptedData,$iv,$data);
if($errCode==0){
print($data);
}else{
print($errCode."");
}

版权声明

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

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

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