最近在开发微信小程序,遇到的坑非常多。上面标题上的问题,在网上搜索,找不到直接的答案。
下面我就直接进入主题。
定义一个button
<
button
open-type=
'share'
type=
'primary'>获取群id
</
button
>
在对应的js文件里面定义onShareAppMessage监听。
onShareAppMessage:
function () {
wx.showShareMenu({
withShareTicket:
true
})
return{
title:
"test",
path:
"/pages/index/index",
success:
function(res){
var shareTickets=res.shareTickets;
if(shareTickets.length==
0){
return
false;
}
wx.getShareInfo({
shareTicket: shareTickets[
0],
success:
function(res){
var encryptedData=res.encryptedData;
var iv =res.iv;
wx.login({
success:
function (res) {
var code = res.code;
console.log(code)
wx.request({
url:
'xx',//写上你后台服务器路径(用途:解析出Gopenid)
//解析出Gopenid需要session_key,
encryptedData,iv。具体后台怎么写,
//可以参照https://www.jianshu.com/p/856fe2195ffe
data: {
'code': code,
'encryptedData': encryptedData,
"iv":iv},
header: {
'content-type':
'application/json'
// 默认值
},
success:
function (res) {
wx.showModal({
title:
'GopenId',
content: res.data.openGId
})
}
})
}
})
console.log(encryptedData)
}
})
},
fail:
function(){
}
}
}
这样就能得到Gopenid了。
第二个问题,用户点击群里面,分享了的小程序后,怎么获取这个群的Gopenid呢?
在App.js的onLaunch里面定义如下代码就可以了
//1044代码是从群进入的代码
if (ops.scene ==
1044) {
wx.showModal({
title:
'test',
content: ops.shareTicket+
""
})
wx.getShareInfo({
shareTicket:ops.shareTicket,
success:
function(res){
var encryptedData = res.encryptedData;
var iv = res.iv;
wx.login({
success:
function (res) {
var code = res.code;
console.log(code)
wx.request({
url:
'xxx',//跟前面一样,是服务器地址
data: {
'code': code,
'encryptedData': encryptedData,
"iv": iv },
header: {
'content-type':
'application/json'
// 默认值
},
success:
function (res) {
wx.showModal({
title:
'GopenId',
content: res.data.openGId
})
}
})
}
})
}
})
}