修复保存纪念日时授权订阅消息未上报额度的缺口
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) {
|
if (formData.remindEnabled) {
|
||||||
try {
|
const accepted = await this.requestSubscribe()
|
||||||
await this.requestSubscribe()
|
if (!accepted) {
|
||||||
} catch (err) {
|
console.log('用户未同意订阅消息,本次不上报额度')
|
||||||
console.log('用户拒绝订阅消息')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -370,21 +372,15 @@ Page({
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求订阅消息授权
|
* 请求订阅消息授权
|
||||||
|
* 委托给 utils/subscribe.js 的 requestAndReport:同意后会自动把新增额度
|
||||||
|
* 上报给后端(走同步队列,失败自动入队)。
|
||||||
|
* 注意:本方法不能加 async,且内部不能在调用 requestAndReport 之前插入
|
||||||
|
* 任何 await —— wx.requestSubscribeMessage 必须由用户点击手势同步触发,
|
||||||
|
* 一旦中间出现异步跳跃,手势上下文丢失会导致调用必然失败。
|
||||||
|
* @returns {Promise<boolean>} 用户是否同意
|
||||||
*/
|
*/
|
||||||
requestSubscribe() {
|
requestSubscribe() {
|
||||||
return new Promise((resolve, reject) => {
|
return subscribe.requestAndReport()
|
||||||
wx.requestSubscribeMessage({
|
|
||||||
tmplIds: [subscribe.TEMPLATE_ID],
|
|
||||||
success: (res) => {
|
|
||||||
console.log('订阅消息授权结果:', res)
|
|
||||||
resolve(res)
|
|
||||||
},
|
|
||||||
fail: (err) => {
|
|
||||||
console.error('订阅消息授权失败:', err)
|
|
||||||
reject(err)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user