} catch (err) {
reject(err);
}
})
}
// 微信JSAPI调用示例
app.get(‘/jsApi’,async (req,res) => {
const url = req.query.pageUrl;
console.log(url);
//获取accessToken–有效期2小时
const accessToken = await getAccessTokenFromWechatServer();
console.log(accessToken);
// 将生成的accessToken保存至数据库
})
2. 用第一步获取的access_token去向微信服务器请求js_ticket,用于后续生成前端调用JS_SDK时需要的config参数
// 从微信服务器获取新的jsapi_ticket
function getJSAPITicketFromWechatServer() {
return new Promise(async (resolve, reject) => {
try {
const AccessToken = webAccessToken;
const uri = https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=${AccessToken}&type=jsapi
;
resolve(await getRequest(uri));
} catch (err) {
reject(err);
}
})
}
// 微信JSAPI调用示例
app.get(‘/jsApi’,async (req,res) => {
// 获取ticket–有效期2小时
const jsTicket = await getJSAPITicketFromWechatServer();
console.log(jsTicket);
// 将获取到的jsTicket保存至数据库
})
3. 第三步就是生成 前端调用微信接口时需要的 wx相关参数了。
相关参数包括appId、timestamp、nonceStr和signature:
appId就是公众号的appId.
timestamp是时间戳,由Date.now()生成,js的写法
nonceStr是生成签名的随机串,由官网文档的示例,应该是由数字、小写字母、大写字母组成的不定长字符串。
signature这个略微复杂一些,微信官方提供了签名算法:
签名算法
签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url