为什么我改了3次‘宠物疫苗提醒’小程序,第4次才被兽医诊所主动采购?
上周三下午,我在小区宠物群发了个链接:「毛孩子疫苗到期前7天自动微信提醒」小程序。12分钟后,XX宠医的王主任加我微信:“能定制我们诊所LOGO+预约跳转吗?我们想嵌进候诊屏。”
这不是接单广告,是真实发生的转折点——而整个小程序,我只用了Cursor + Claude Code,没写一行原生WXML或JS。
今天不讲理论,只拆解从‘自用小工具’到‘被采购的轻服务’的4次迭代逻辑,每一步都可复制。
---
第1版:纯自用(失败)
目标:提醒自家布偶打狂犬、猫三联、驱虫时间
AI Prompt(Claude Code):
用微信小程序语法写一个极简版宠物疫苗提醒工具:
输入宠物名、品种、出生日期、已接种疫苗类型及日期
自动计算下次接种时间(狂犬1年/猫三联1年/驱虫3月)
列表显示所有待办,支持标记‘已接种’
不用云开发,数据存本地storage
✅ 生成成功,5分钟上线。但问题来了:
第2版:加扫码登记(仍失败)
升级点:用
wx.scanCode让主人扫宠物牌二维码,自动带出宠物信息Cursor操作:
pages/index/index.js中插入Claude生成的扫码逻辑✅ 邻居夸“聪明”,但诊所反馈:“我们没法批量导入几百只宠物”。
第3版:支持Excel导入(差点成交)
Prompt优化重点:
> “生成一个前端页面:上传Excel文件(列名:姓名、电话、宠物名、品种、生日、上次狂犬日期…),解析后存入本地数组,渲染为可编辑表格。用SheetJS库,不要后端。”
Claude Code直接输出含 + XLSX.read() + 表格渲染的完整wxml/js。我仅做了两处修改:
⚠️ 卡点:诊所说“Excel要发邮箱,太慢;最好手机直接拍花名册”。
第4版:真·被采购的关键——「拍照OCR + 结构化录入」
这才是转折点。我换了个思路:不让人填,让AI读。
最终Prompt(在Cursor中对Claude Code发送):
微信小程序页面,实现:
点击「拍花名册」按钮调起相机
用Tencent OCR SDK(已引入)识别图片中的文字
用正则自动提取:姓名(中文2-4字)、电话(11位)、宠物名(含“咪咪”“旺财”等昵称)、疫苗类型(含“狂犬”“细小”“驱虫”)
提取后弹窗确认,点击确认则存入本地storage并生成带诊所LOGO的二维码卡片
页面底部固定「导出全部二维码PDF」按钮(用jsPDF + html2canvas)
✨ 实操细节:
app.json中添加"permission": {"scope.camera": {"desc": "用于识别宠物档案"}}npm install qrcode jsPDF html2canvas --save-dev(Cursor会提示安装)wx.cloud.callFunction——我手动删掉,换成wx.request({url: 'https://api.ai.tencent.com/ocr/v1/general', ...}),并配置了免费试用的腾讯OCR密钥(注册即送1000次)上线当天,我把小程序码打印成A4纸,贴在XX宠医前台。第二天,王主任发来消息:“明天带技术同事过来,谈按年付费接入。”
---
为什么这次成了?3个反常识设计
---
你能立刻复刻的3个动作
onLoad里加一句if (wx.getStorageSync('clinic_mode')) { showClinicFooter() },为后续B端开关预留真正的副业起点,不是写多炫的代码,而是让第一个真实用户愿意为你的一次点击付费。
> ✅ 本文所有代码已开源:[github.com/woshird/mini-pet-remind](https://github.com/woshird/mini-pet-remind)(含4个版本diff)