Skip to content

Commit ff7a038

Browse files
authored
Merge pull request #329 from wangxinleo/feature/develop
fix(wechat-public-account-push): 紧急修复0504微信测试号模板整改
2 parents ab6aa9e + fdde1aa commit ff7a038

File tree

2 files changed

+63
-20
lines changed

2 files changed

+63
-20
lines changed

README.md

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ wechat-public-account-push
3333

3434
**微信团队于2023-05-04日晚12点下线【自定义颜色】、【emoji表情符号】、【自定义换行】、【尾部/备注字段】。**
3535

36-
**现已严重影响【微信测试号】的推送服务,目前正修复中...**
36+
**【微信测试号】的推送服务已受到影响,原有的推送模板需要用户自行修改,详见 [如何修复因2023-05-04微信推送服务规范整改,导致推送服务异常](https://github.com/wangxinleo/wechat-public-account-push/issues/326)**
3737

3838
**使用服务号推送不受影响**
3939

@@ -290,12 +290,32 @@ wechat-public-account-push 实现自消息推送的原理,是通过调用一
290290

291291
**计时类**
292292

293-
| 参数 | 详细 | 示例 |
294-
|-----------------------|---------------------------|---------------------------------------------------------------|
295-
| ~~love_day.DATA~~ | 已预置, 但是可以删掉, 在配置中自定义, 见下文 | 2674 |
296-
| ~~marry_day.DATA~~ | 已预置, 但是可以删掉, 在配置中自定义, 见下文 | 965 |
297-
| birthday_message.DATA | 生日消息和节日消息 | 距离 宝贝 的生日还有122天,距离 中秋节还有30天 |
298-
| course_schedule.DATA | 每日的课表 | 08:00-09:35 高等数学<br/> 09:35-10:35 大学语文 <br/> 10:35-11:35 大学英语 |
293+
| 参数 | 详细 | 示例 |
294+
|---------------------------------------|---------------------------|---------------------------------------------------------------|
295+
| ~~love_day.DATA~~ | 已预置, 但是可以删掉, 在配置中自定义, 见下文 | 2674 |
296+
| ~~marry_day.DATA~~ | 已预置, 但是可以删掉, 在配置中自定义, 见下文 | 965 |
297+
| birthday_message.DATA (**微信测试号无法使用**) | 生日消息和节日消息 | 距离 宝贝 的生日还有122天,距离 中秋节还有30天 |
298+
| course_schedule.DATA (**微信测试号无法使用**) | 每日的课表 | 08:00-09:35 高等数学<br/> 09:35-10:35 大学语文 <br/> 10:35-11:35 大学英语 |
299+
300+
301+
`{index}`替换为要显示的第N-1个
302+
303+
> 用法示例:
304+
>
305+
> 距离第1近的生日消息和节日消息请填写
306+
>
307+
> **wx_birthday_0.DATA** -> 距离 宝贝 的生日还有122天
308+
>
309+
> 第2节课请填写
310+
>
311+
> **wx_course_schedule_1.DATA** -> 08:00-09:35 高等数学
312+
>
313+
> (请确保在配置文件中设置了正确的天数)
314+
315+
| 参数 | 详细 | 示例 |
316+
|---------------------------------|-------------------------|-------------------|
317+
| wx_birthday_{index}.DATA | 距离第{index-1}近的生日消息和节日消息 | 距离 宝贝 的生日还有122天 |
318+
| wx_course_schedule_{index}.DATA | 第{index-1}节课 | 08:00-09:35 高等数学 |
299319

300320
**天行简单API**
301321

src/services/index.js

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export const getAccessToken = async () => {
6262
console.log('---')
6363
} else {
6464
console.log('---')
65-
console.error('获取 accessToken: 请求失败', res.data.errmsg)
65+
console.error('获取 accessToken: 请求失败', res.data.errmsg || res.data)
6666
console.log('---')
6767
console.log(`40001: 请检查appId,appSecret 填写是否正确;
6868
如果第一次使用微信测试号请关闭测试号平台后重新扫码登陆测试号平台获取最新的appId,appSecret`)
@@ -426,7 +426,7 @@ export const getConstellationFortune = async (date, dateType) => {
426426
/**
427427
* 获取课程表
428428
* @param courseSchedule {Array<Array<String>>|{benchmark: {date: string, isOdd: boolean}, courses: {odd: Array<Array<string>>, even:Array<Array<string>>}}}
429-
* @returns {string}
429+
* @returns
430430
*/
431431
export const getCourseSchedule = (courseSchedule) => {
432432
if (config.SWITCH && config.SWITCH.courseSchedule === false) {
@@ -446,7 +446,19 @@ export const getCourseSchedule = (courseSchedule) => {
446446
.set('millisecond', 0), 'millisecond')
447447
const isSameKind = Math.floor(diff / 7 / 86400000) % 2 === 0
448448
const kind = ((isSameKind && courseSchedule.benchmark.isOdd) || (!isSameKind && !courseSchedule.benchmark.isOdd)) ? 'odd' : 'even'
449-
return ((courseSchedule.courses && courseSchedule.courses[kind] && courseSchedule.courses[kind][week]) || []).join(getLB())
449+
450+
const temp = ((courseSchedule.courses && courseSchedule.courses[kind] && courseSchedule.courses[kind][week]) || [])
451+
const schedule = temp.join(getLB())
452+
const wechatTestCourseSchedule = []
453+
temp.forEach((item, index) => {
454+
wechatTestCourseSchedule.push({
455+
name: toLowerLine(`wxCourseSchedule_${index}`),
456+
value: item,
457+
color: getColor()
458+
})
459+
})
460+
461+
return {schedule, wechatTestCourseSchedule}
450462
}
451463

452464
/**
@@ -502,6 +514,8 @@ export const getBirthdayMessage = (festivals) => {
502514
}
503515
})
504516
let resMessage = ''
517+
const wechatTestBirthdayMessage = []
518+
505519

506520
birthdayList.forEach((item, index) => {
507521
if (
@@ -521,29 +535,34 @@ export const getBirthdayMessage = (festivals) => {
521535
}
522536

523537
if (item.diffDay === 0) {
524-
message = `今天是 ${item.name}${age && item.isShowAge ? `${(item.useLunar ? 1 : 0) + age}岁` : ''}生日哦,祝${item.name}生日快乐!`
538+
message = `今天是 ${item.name}${age && item.isShowAge ? `${(item.useLunar ? 1 : 0) + age}岁` : ''}${item.useLunar ? '阴历' : '公历'}生日哦,祝${item.name}生日快乐!`
525539
} else {
526-
message = `距离 ${item.name}${age && item.isShowAge ? `${age + 1}岁` : ''}生日还有${item.diffDay}天`
540+
message = `距离 ${item.name}${age && item.isShowAge ? `${age + 1}岁` : ''}${item.useLunar ? '阴历' : '公历'}生日还有${item.diffDay}天`
527541
}
528542
}
529543

530544
// 节日相关
531545
if (item.type === '节日') {
532546
if (item.diffDay === 0) {
533-
message = `今天是 ${item.name} 哦,要开心!`
547+
message = `今天是 ${item.name} 哦,要开心!`
534548
} else {
535-
message = `距离 ${item.name} 还有${item.diffDay}天`
549+
message = `距离 ${item.name} 还有${item.diffDay}天`
536550
}
537551
}
538552

539553
// 存储数据
540554
if (message) {
541555
resMessage += `${message} ${getLB()}`
556+
wechatTestBirthdayMessage.push({
557+
name: toLowerLine(`wxBirthday_${index}`),
558+
value: message,
559+
color: getColor()
560+
})
542561
}
543562
}
544563
})
545564

546-
return resMessage
565+
return {resMessage, wechatTestBirthdayMessage}
547566
}
548567

549568
/**
@@ -732,13 +751,13 @@ export const getAggregatedData = async () => {
732751
}))
733752

734753
// 获取生日/生日信息
735-
const birthdayMessage = getBirthdayMessage(user.festivals)
754+
const { resMessage: birthdayMessage, wechatTestBirthdayMessage } = getBirthdayMessage(user.festivals)
736755

737756
// 获取星座运势
738757
const constellationFortune = await getConstellationFortune(user.horoscopeDate, user.horoscopeDateType)
739758

740759
// 获取课表信息
741-
const courseSchedule = getCourseSchedule(user.courseSchedule || config.courseSchedule) || DEFAULT_OUTPUT.courseSchedule
760+
const {schedule:courseSchedule, wechatTestCourseSchedule} = getCourseSchedule(user.courseSchedule || config.courseSchedule) || DEFAULT_OUTPUT.courseSchedule
742761

743762
// 天行-早晚安
744763
const tianApiGreeting = [{
@@ -795,6 +814,8 @@ export const getAggregatedData = async () => {
795814
.concat(tianApiGreeting)
796815
.concat(tianApiWeather)
797816
.concat(tianApiNetworkHot)
817+
.concat(wechatTestBirthdayMessage)
818+
.concat(wechatTestCourseSchedule)
798819

799820
user.wxTemplateParams = wxTemplateParams
800821
}
@@ -1084,9 +1105,11 @@ export const sendMessage = async (templateId, user, params, usePassage) => {
10841105
const wxTemplateData = {}
10851106
if (Object.prototype.toString.call(params) === '[object Array]') {
10861107
params.forEach((item) => {
1087-
wxTemplateData[item.name] = {
1088-
value: item.value,
1089-
color: item.color,
1108+
if (item && item.name) {
1109+
wxTemplateData[item.name] = {
1110+
value: item.value,
1111+
color: item.color,
1112+
}
10901113
}
10911114
})
10921115
}

0 commit comments

Comments
 (0)