From 559fd38a5259724c8e84841bd8ed4bae5939add8 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Mon, 13 Jul 2026 08:18:40 +0800 Subject: [PATCH] =?UTF-8?q?docs(reward):=20=E8=AE=BE=E8=AE=A1=E6=96=87?= =?UTF-8?q?=E6=A1=A3=20webhook=20=E8=B7=AF=E5=BE=84=20/tg/webhook=E2=86=92?= =?UTF-8?q?/v1/tg/webhook=20+=20app=5Ftext=20=E9=A6=96=E5=85=85=E6=B3=A8?= =?UTF-8?q?=E9=87=8A=2015=E2=86=927?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 终审指出:实际路由挂在 /v1 组下,setWebhook 须指向 https://api.yanmeiai.com/v1/tg/webhook; app_text.dart:603 抽象 getter 上的过时「15 天」注释一并订正为 7。 Co-Authored-By: Claude Opus 4.8 (1M context) --- client/lib/l10n/app_text.dart | 2 +- docs/invite-task-rewards-design.html | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/client/lib/l10n/app_text.dart b/client/lib/l10n/app_text.dart index e90bbe2..59dbbb0 100644 --- a/client/lib/l10n/app_text.dart +++ b/client/lib/l10n/app_text.dart @@ -600,7 +600,7 @@ abstract class AppText { String get inviteCopyLink; // 复制链接 / Copy link String get inviteRewardsTitle; // 奖励规则 / Rewards String get inviteRewardRegister; // 好友注册 · 双方各得 3 天 / Sign up · +3 days each - String get inviteRewardFirstBuy; // 好友首购 · 双方各得 15 天 / First purchase · +15 days each + String get inviteRewardFirstBuy; // 好友首购 · 双方各得 7 天 / First purchase · +7 days each String get inviteRewardJoinTg; // 加入 TG 频道 · 得 3 天 / Join TG · +3 days String get inviteProgressTitle; // 我的奖励 / My rewards String get inviteTasksTitle; // 更多得会员 / More ways to earn diff --git a/docs/invite-task-rewards-design.html b/docs/invite-task-rewards-design.html index 337dc13..4efa02a 100644 --- a/docs/invite-task-rewards-design.html +++ b/docs/invite-task-rewards-design.html @@ -125,7 +125,7 @@ pay webhook.settle()首充钩子:在 GrantPaidSubscriptionTx 之后,若 users.first_paid_at 本次由空转非空(=首充)且该用户是被邀请人(referrals 命中)→ 发首充段双方 +7(paid_rewarded,幂等)。 GET /v1/invite我的邀请码 / 链接 + 战绩:已邀请数、已转化(首充)数、累计获赠天数、明细列表;附奖励任务清单(TG 完成态)。 GET /v1/tasks/telegram/start签发绑定 token(10 分钟有效、绑当前账户),返回 bot 深链 t.me/<reward_bot>?start=<token>。 -POST /tg/webhookTelegram Bot 更新回调(secret 校验,与 pay webhook 同款外部回调):收 /start <token> → 校验成员 → 发 TG 任务 +3。详见 §5。 +POST /v1/tg/webhookTelegram Bot 更新回调(secret 校验,与 pay webhook 同款外部回调):收 /start <token> → 校验成员 → 发 TG 任务 +3。详见 §5。

5 · TG 任务验证流程(Bot getChatMember)

@@ -158,7 +158,7 @@ ③ 拉起 bot,用户按 Start(/start token) - ④ POST /tg/webhook(update:token + telegram_id) + ④ POST /v1/tg/webhook(update:token + telegram_id) ⑤ getChatMember(频道, telegram_id) @@ -186,7 +186,7 @@ @@ -232,7 +232,7 @@ server/internal/auth/service.go # Register 加 inviteCode + 建 referrals + 注册段发奖 server/internal/reward/ # 新包:邀请/任务发奖 + 防刷闸 + getChatMember server/internal/pay/webhook.go # settle() 首充钩子接首充段发奖 -server/internal/httpapi/ # GET /v1/invite、/v1/tasks/telegram/start、POST /tg/webhook +server/internal/httpapi/ # GET /v1/invite、/v1/tasks/telegram/start、POST /v1/tg/webhook server/migrations/{mysql,sqlite}/ # users +2 列、referrals、reward_claims # 客户端 client/lib/screens/invite_page.dart # 占位 → 真实(邀请区 + 任务区)