fix(微信订阅): 不再按本地记账拦截发送,一律交给微信裁决

This commit is contained in:
2026-10-11 16:59:25 +08:00
parent 6f9def0ffd
commit c51b7c660a
4 changed files with 67 additions and 41 deletions
+6 -3
View File
@@ -628,9 +628,12 @@ export const userIdentities = pgTable('UserIdentity', {
* 用户在小程序里点「允许」时 grantedCount +1,服务端发送成功时 sentCount +1,
* 被微信拒绝(如 43101)时 blockedCount +1 并记下 errcode。
*
* ⚠️ 这里算出的额度是**我们自己数的近似值**:用户可能在别处授权、或微信侧额度
* 过期,真值只有发一条收到 43101 才知道。所以 `no-grant` 预检只用于「省一次请求」,
* 不能当成权威判断(自测接口用 force 绕过)。
* ⚠️ 这里算出的额度是**我们自己数的近似值**:用户可能在别处授权、上报可能没发出去、
* 微信侧额度也可能过期,真值只有发一条收到 43101 才知道。
*
* **所以这张表只用于展示和排查,绝不参与「发不发」的决策** —— 早先的版本拿它做额度
* 预检(记账为 0 就跳过不发送),结果记账一旦和微信侧不同步,通知就被无声地全部丢掉。
* 现在服务端一律照常尝试发送,让微信回 errcode 来裁决。
*/
export const wechatSubscribeGrants = pgTable('WechatSubscribeGrant', {
id: serial('id').primaryKey(),