准备工作
参考文档
公众号(非个人)
个人公众号无法微信认证,无法使用分享接口
- 1 设置JS接口安全域名
登录公众号
在侧边栏找到设置与开发>公众号设置>功能设置>JS接口安全域名
将验证文件上传至填写域名或路径指向的web服务器
填写域名,不需要http(s)://,如:www.xxx.com
- 2 获取appID和appSecret以及配置ip白名单
在侧边栏找到设置与开发>基本配置>公众号开发信息
后端操作
说明
语言:go
access_token和jsapi_ticket过期时间都是7200s需要定时获取缓存下来
timestamp 当前时间戳精确到秒
nonceStr 随机字符串
signature 参考后续代码
获取access_token
1 2
| url := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", appid, appsecret)
|
获取jsapi_ticket
1 2
| url := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%s&type=jsapi", access_token)
|
获取signature
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
func Hsa1(str string) string { h := sha1.New() h.Write([]byte(str)) tmp := hex.EncodeToString(h.Sum([]byte(""))) return tmp } str := fmt.Sprintf(`jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s`, jsapi_ticket, noncestr, timestamp, url) signature := Hsa1(str)
|
jsApiList
使用到api名称,eg: [“updateAppMessageShareData”,”updateTimelineShareData”]
文档
收尾工作
将appId,timestamp,nonceStr,signature,jsApiList返回给前端
前端操作
引入js文件
1
| <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
|
通过 config 接口注入权限验证配置
1 2 3 4 5
| wx.config({ debug: true, ...data, });
|
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| wx.ready(function () { wx.updateAppMessageShareData({ title: "title", desc: "desc", link: "https://www.xx.con", imgUrl: "https://xxxx.com/xx.png", success: function () { }, }); });
|
测试
debug为true,手机端会alert,pc端会log
成功会alert config:ok
其他错误码可以参考文档