🎉 wechat corp message supported
This commit is contained in:
+14
-7
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user