返回
那些微不足道,却影响体验的微信后端细节
前端
2023-11-09 10:52:26
微信后端开发指南:深入浅出详解核心功能
获取Access_token
Access_token是微信公众平台的通行证,用于调用各种接口。它的有效期为两小时,需要定期刷新。
const request = require('request');
const appId = 'your-app-id';
const appSecret = 'your-app-secret';
const getToken = async () => {
const response = await request.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${appSecret}`);
const data = JSON.parse(response.body);
return data.access_token;
};
获取api_ticket
api_ticket是用于调用微信JS接口的临时票据。它的有效期也为两小时,需要及时刷新。
const getTicket = async (token) => {
const response = await request.get(`https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=${token}&type=jsapi`);
const data = JSON.parse(response.body);
return data.ticket;
};
获取signature
signature是调用微信JS接口的签名,它的有效期为五分钟。
const crypto = require('crypto');
const getSignature = async (token, ticket, url) => {
const timestamp = Date.now();
const nonce = Math.random().toString(36).substr(2, 15);
const string1 = `jsapi_ticket=${ticket}&noncestr=${nonce}×tamp=${timestamp}&url=${url}`;
const signature = crypto.createHash('sha1').update(string1).digest('hex');
return {
appId,
timestamp,
nonce,
signature,
};
};
注入权限验证配置
权限验证配置用于将公众号JS接口的权限验证配置注入到网页中。
const ejs = require('ejs');
const fs = require('fs');
const template = fs.readFileSync('./template.ejs', 'utf-8');
const html = ejs.render(template, {
appId,
timestamp,
nonce,
signature,
});
fs.writeFileSync('./index.html', html);
获取小程序用户的openid
小程序用户的openid是小程序用户的唯一标识。需要在用户授权后才能获取。
const getOpenid = async (code) => {
const response = await request.get(`https://api.weixin.qq.com/sns/jscode2session?appid=${appId}&secret=${appSecret}&js_code=${code}&grant_type=authorization_code`);
const data = JSON.parse(response.body);
return data.openid;
};
结论
本文介绍了微信后端开发中一些常见功能的实现,涵盖了获取Access_token、api_ticket、signature以及注入权限验证配置。通过这些功能,开发者可以实现微信公众平台的各种应用,为用户提供更丰富的体验。
常见问题解答
1. Access_token的有效期有多长?
两小时。
2. api_ticket的有效期有多长?
两小时。
3. signature的有效期有多长?
五分钟。
4. 如何获取小程序用户的openid?
在用户授权后,通过获取用户code,调用jscode2session接口即可获取。
5. 如何注入权限验证配置到网页中?
可以使用ejs模板引擎将权限验证配置信息注入到网页中。