Blizzard
|
747e7c9d3a
|
feat(fe): 身份卡手机号门槛加「手动填写」兜底
getPhoneNumber 需企业认证 + 手机号验证权限,个人/未认证小程序唤不起。
门槛卡加「手动填写手机号」入口:填 11 位号 → updateProfile 存库 → 重取卡生成。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-31 17:52:31 +08:00 |
|
Blizzard
|
586875f8c5
|
feat: 身份卡改上下两张卡(正面/背面) + 手机号硬门槛
- canvas 重画成上下两张:正面(暖黄,头像/名字性别/性别品种毛色年龄/性格
彩色标签/介绍/物ID+一起生活天数)、背面(蓝色照护信息条 + 主人/电话/疫苗/
备注/发证机构/有效期 + 走失联系框&小程序码)
- 生成前查手机号:没有则唤起 getPhoneNumber 组件,验证成功才生成;
拒绝则提示「无法生成」不出卡
- IDCard 增 age/days;ic-canvas 高度改 1480 否则导出被裁
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-31 17:48:39 +08:00 |
|
Blizzard
|
15adfb76ac
|
feat(fe): 身份卡重绘成正面+照护信息+证件三段式 + 手机号验证
- 正面:头像/名字/物种性别 + 品种·毛色 / 出生·星座 / 体重 + 性格标签chips
- 照护信息:主人 / 联系电话 / 疫苗情况 / 备注(去掉驱虫、过敏)
- 证件区:居民身份卡 + 身份ID / 发证机构 / 有效期 + 小程序码
- 未验证手机号时页面出现「用微信验证手机号」(getPhoneNumber),
拿到 code 换手机号后重取卡重画;表单去掉过敏输入
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-31 17:28:26 +08:00 |
|
Blizzard
|
bb7db78763
|
feat(fe+be): 身份卡头像不再压扁 + 内容丰富
- 头像用九参数 drawImage 居中裁剪(cover),竖图/横图都不变形,加白边圈
- 后端 IDCard 增 zodiac(按生日算星座) + weight,卡面加「星座/体重」行
- 加淡淡的肉垫水印 + 旋转的「肉垫计划·官方认证」印章
- 画布加高容纳新增内容
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-31 11:50:04 +08:00 |
|
Blizzard
|
cbfcaada55
|
feat: 宠物身份卡(canvas 绘制 + 小程序码 + 存相册/分享)
竞品那张「居民身份卡」,完整做了。
## 后端
service/wxacode.go —— 小程序码。两步:先拿 access_token(2h 有效,进程内缓存、
提前 5 分钟过期),再调 getwxacodeunlimit 换一张 PNG 存到 MinIO 返回 URL。
同一只宠物的码 object 名按 pet id 定死,存在就直接返回不重新生成 ——
微信侧有日调用配额,不能每次点都烧一次。
⚠️ getwxacodeunlimit 要求 page 在**已发布**的小程序版本里。开发/未发布时返回
errcode 41030,实测确认。这时身份卡照常出、只是没码(qr_ready=false),
发布后自动就有,不用改代码。best-effort,取不到不算错。
service/idcard.go —— 组装卡片内容。身份 ID 用「宠物雪花 id 的数字 + 生日」
拼成 18 位、每 4 位空一下,纯装饰不入库不校验,同一只每次都一样。
介绍按物种给默认(汪星人/喵星人来地球啦~)。有效期用生日起算。
GET /api/pets/:id/id-card
storage 加了 Exists(StatObject),生成前先查。
## 前端 pages/idcard
离屏 canvas 2d 画卡,导出成图展示 + 存相册 + 分享(open-type=share,
imageUrl 用画好的卡当封面)。
两张远程图(头像 + 小程序码)都用 node.createImage() 异步加载,
**Promise.all 等两张都就绪再开画** —— 否则小程序码会画不上或画一半
(规划里专门点过名的坑)。任一张加载失败 resolve(null),缺图也照画:
头像缺→画物种 emoji,码缺→画「小程序码 待发布」占位框。
存相册的权限被拒过一次后 wx.authorize 不再弹,走 openSetting 引导(同海报那套)。
绘制复用了 bottom-sheet 里 poster 的 canvas 模式(dpr 放大、roundRect、
canvasToTempFilePath),但 poster 只画文字不画远程图,这里的双图加载是新写的。
入口:「我的」→ 身份卡,用当前选中的宠物。
## 验证(预生产库实跑)
id-card 接口返回:姓名/性别/品种/生日/介绍/身份ID/有效期 全对
身份 ID = 3410 4333 1420 2503 17(宠物id数字+生日,稳定)
qr_ready = false,日志确认 41030 invalid page(小程序未发布,预期)
canvas 版式用 HTML 复刻确认过:未发布=占位、发布后=真码
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 16:48:16 +08:00 |
|