一、 安装使用jsdk
1、在项目中npm安装微信sdk
npm install weixin-js-sdk
2、安装完成之后在页面引入(在全局也行)
import wx from "weixin-js-sdk";
Vue.prototype.$wx = wx //安装jssdk
3、新建wxSdk.js文件封装抽取jsdk(按照自己喜好可以在当前页面写)
import request from "./request"; //axios封装
export const setJsSDKConfig = async (wx, jsApiList) => {
const urlParams = location.href.split("#")[0];
const { data } = await request({ url: "接口", method: "post", params: { url:urlParams } });
const { timestamp, nonce_str: nonceStr, signature } = data;
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过 log打出,仅在pc端时才会打印。
appId: "wx930fed1bfe9c6831", // 必填,公众号的唯一标识
timestamp, // 必填,生成签名的时间戳
nonceStr, // 必填,生成签名的随机串
signature,// 必填,签名
jsApiList // 必填,需要使用的JS接口列表 ["scanQRCode"]扫一扫,需要什么功能传入什么功能
});
}
4、在使用到的页面引用
import { setJsSDKConfig } from "@/utils/wxSdk.js" //引入新建文件
mounted() {
//["scanQRCode"]当前使用扫一扫,可以按照自己需求写
setJsSDKConfig(this.$wx, ["scanQRCode"]);
},
methods:{
// 扫一扫点击触发事件
scanQRCode() {
this.$wx.scanQRCode({
needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
console.log(result, "result");
}
});
},
}
二、获取JS-SDK使用权限签名算法 全局缓存jsapi_ticket 。
1、参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):developers.weixin.qq.com/doc/offiacc… 请求接口https请求方式: GET 2、用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):api.weixin.qq.com/cgi-bin/tic…