一:下载js-sdk
"weixin-js-sdk": "^1.6.0"
npm i weixin-js-sdk
二:引入
//在main文件全局挂载
import wx from 'weixin-js-sdk'
Vue.prototype.$wx = wx
三:设置js-sdk的配置信息
appId后台获取、jsApiList参考官方文档填入你所需要的接口名
注意点:1.拿取签名的url必须和当前路径的url相同,在当前路径的url带有参数的情况下需要encodeURIComponent(url),否则提示63002无效的签名 2.报40048无效的url,检查js接口安全域名是否带有协议http/https,有则去掉,只需要ip或域名
async setWxConfig() {
const url = location.href
const { data } = await getSignature(url)
this.$wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature,// 必填,签名
jsApiList: [''] // 必填,需要使用的JS接口列表
})
},
// 判断是否在微信客户端
isWeChat() {
const ua = navigator.userAgent.toLowerCase();
return ua.indexOf('micromessenger') != -1 // 在true 不在false
}
四:使用
this.$wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
this.$wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});