🎉 wechat corp message supported

This commit is contained in:
Song
2021-03-28 11:15:57 +08:00
parent 7478128b6b
commit 4713373c54
10 changed files with 184 additions and 29 deletions
+14 -7
View File
@@ -1,11 +1,16 @@
const axios = require('axios');
const { tokenStore } = require('./token');
const { tokenStore, updateTokenStore } = require('./token');
const config = require('../config');
async function refreshToken() {
for (let [key, value] of tokenStore) {
value.token = await requestToken(value.wechatAppId, value.wechatAppSecret);
tokenStore.set(key, value);
if (value.wechatAppId) {
value.wechatToken = await requestToken(
value.wechatAppId,
value.wechatAppSecret
);
tokenStore.set(key, value);
}
}
console.log('Token refreshed.');
}
@@ -39,22 +44,24 @@ async function pushWeChatMessage(userPrefix, message) {
message: `不存在的前缀:${userPrefix},请注意大小写`,
};
}
let access_token = user.token;
let access_token = user.wechatToken;
let request_data = {
touser: user.wechatOpenId,
template_id: user.wechatTemplateId,
};
if (message.content) {
request_data.url = `${config.href}message/${message.id}`;
console.debug(`http://localhost:3000/message/${message.id}`);
}
request_data.data = { text: { value: message.description } };
let requestUrl = `https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=${access_token}`;
try {
let response = await axios.post(requestUrl, request_data);
if (response && response.data && response.data.errcode !== 0) {
await requestToken(user.wechatAppId, user.wechatAppSecret);
await axios.post(requestUrl, request_data);
// Failed to push message, get a new token and try again.
let token = await requestToken(user.wechatAppId, user.wechatAppSecret);
updateTokenStore(userPrefix, 'wechatToken', token);
requestUrl = `https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=${access_token}`;
response = await axios.post(requestUrl, request_data);
}
if (response.data.errcode === 0) {
return {