修复保存纪念日时授权订阅消息未上报额度的缺口
requestSubscribe() 改为委托给 utils/subscribe.js 的 requestAndReport(),用户同意授权后会把新增额度同步上报后端, 避免最主要的授权入口被漏记导致余额系统性低估、定时任务拒发。 onSubmit 里原来依赖 reject 的 try/catch 改为直接判断布尔返回值, 消除死代码分支,"拒绝不阻塞保存"的行为保持不变。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -301,11 +301,13 @@ Page({
|
||||
}
|
||||
|
||||
// 如果开启了提醒,请求订阅消息授权
|
||||
// 注:requestSubscribe 委托给 utils/subscribe.js 的 requestAndReport,
|
||||
// 该函数只会 resolve(true=同意/false=拒绝),不会 reject;
|
||||
// 无论用户是否同意,都不阻塞后续保存流程
|
||||
if (formData.remindEnabled) {
|
||||
try {
|
||||
await this.requestSubscribe()
|
||||
} catch (err) {
|
||||
console.log('用户拒绝订阅消息')
|
||||
const accepted = await this.requestSubscribe()
|
||||
if (!accepted) {
|
||||
console.log('用户未同意订阅消息,本次不上报额度')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,21 +372,15 @@ Page({
|
||||
|
||||
/**
|
||||
* 请求订阅消息授权
|
||||
* 委托给 utils/subscribe.js 的 requestAndReport:同意后会自动把新增额度
|
||||
* 上报给后端(走同步队列,失败自动入队)。
|
||||
* 注意:本方法不能加 async,且内部不能在调用 requestAndReport 之前插入
|
||||
* 任何 await —— wx.requestSubscribeMessage 必须由用户点击手势同步触发,
|
||||
* 一旦中间出现异步跳跃,手势上下文丢失会导致调用必然失败。
|
||||
* @returns {Promise<boolean>} 用户是否同意
|
||||
*/
|
||||
requestSubscribe() {
|
||||
return new Promise((resolve, reject) => {
|
||||
wx.requestSubscribeMessage({
|
||||
tmplIds: [subscribe.TEMPLATE_ID],
|
||||
success: (res) => {
|
||||
console.log('订阅消息授权结果:', res)
|
||||
resolve(res)
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('订阅消息授权失败:', err)
|
||||
reject(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
return subscribe.requestAndReport()
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user