需要引入的依赖:
import wx from “weixin-js-sdk”;
import axios from “axios”;
import qs from “qs”;
import sha1 from “js-sha1”;
import { v4 } from “uuid”;
没有的话使用npm install 一下
关键代码
//请求后台的方法
ajax(url, params) {
return new Promise((resolve, reject) => {
let paramsStr = qs.stringify(params);
axios
.get(url, paramsStr)
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
});
},
getSignature() {
let that = this;
let getTokenUrl =
"/wxapi/cgi-bin/token?grant_type=client_credential&appid=你的appId&secret=你的app密钥";
let params = {};
that
.ajax(getTokenUrl, params)
.then((res) => {
let token = res.data.access_token;
let getTicketUrl =
"/wxapi/cgi-bin/ticket/getticket?access_token=" +
token +
"&type=jsapi";
that
.ajax(getTicketUrl, params)
.then((res) => {
let ticket = res.data.ticket;
let timestamp = Math.round(new Date().getTime() / 1000);
this.timestamp = timestamp;
let noncestr = v4();
this.noncestr = noncestr;
let url = 你的url地址;
let str =
"jsapi_ticket=" +
ticket +
"&noncestr=" +
noncestr +
"×tamp=" +
timestamp +
"&url=" +
url;
let signature = sha1(str);
this.signature = signature;
})
.catch((err) => {
console.log(err);
});
})
.catch((err) => {
console.log(err);
});
},
签名验证地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
搞定!
ps:/wxapi要配nginx代理;url是指当前页的url,可以用 window.location.href.split(“#”)[0];来获取