微信小程序获取open-gid和群名称
来源:互联网 发布:高斯金字塔算法 matlab 编辑:程序博客网 时间:2024/06/07 01:15
小程序开放了微信群能力,获取groupid是第一步,相关组件在组件的开放数据中,获取open-gid(微信群的groupid)就会自动获取群名称。
<open-data type="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)
var that=this
wx.login({
success: function (res) {
console.log(res) // 使用这个 code 向微信换取 session_key
var js_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。
var app = getApp()
Page({
onShareAppMessage: function (res) {
var that=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()
var ticket = res.shareTickets[0]
wx.getShareInfo({
shareTicket: ticket,
success: function (res) {
console.log(res)
var encrypt = res.encryptedData
var iv=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)
var x = res.data;
console.log(typeof(x))
var y = eval('(' + x + ')');
console.log(typeof (y))
var openGId = y.openGId
console.log(y.openGId)
that.setData({
id: openGId,
gid: openGId,
})
},
})
},
})
},
}
}
})
$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 = new WXBizDataCrypt($appid, $sessionKey);
$errCode = $pc->decryptData($encryptedData, $iv, $data );
if ($errCode == 0) {
print($data);
} else {
print($errCode . "\n");
}
- 微信小程序获取open-gid和群名称
- 微信小程序--获取地理位置名称
- 获取CPU厂商名称程序
- uid和gid
- SID, GID 和 粘滞位
- Linux uid和gid
- UID、GID和权限
- Android中的程序名称和Lancher名称
- 本地动态SQL(Open for等)如何获取SQL的定义属性,包括栏位名称和数据类型
- GID
- 文件和路径名称获取
- 获取app版本和名称
- 获取浏览器名称和版本号
- 获取操作系统名称和版本
- 获取版本名称和版本号
- QT-程序图标和名称
- set uid和set gid
- GID绘图和CDC类
- Kafka的安装与简单测试
- 文章标题
- MySQL 常用索引及创建方法
- HDOJ2102 深搜DFS解法+剪枝优化 入门题
- search sort
- 微信小程序获取open-gid和群名称
- CSS3 选择器——基本选择器
- CSS3 选择器——属性选择器
- MyBatis绑定错误--BindingException:Invalid bound statement (not found)
- CSS3 选择器——伪类选择器
- PHP ,与. 字符串拼接效率比较及原理
- python 字符编码转换详解
- 高级网络管理之bond与team
- mac破解百度网盘限速方法