# 小程序二维码功能测试指南 ## 前置条件 ### 1. 配置小程序信息 进入后台管理系统: - 导航到:渠道设置 -> 微信小程序设置 - 填写必填项: - AppID(小程序AppID) - AppSecret(小程序AppSecret) - 保存配置 ### 2. 确保有测试数据 - 至少有一条患者诊断记录 - 记录中包含完整的患者信息(patient_id) ## 测试步骤 ### 测试1:正常生成二维码 1. 登录后台管理系统 2. 进入:中医管理 -> 诊断管理 3. 找到任意一条患者记录 4. 点击操作列的"小程序二维码"按钮 5. 预期结果: - 弹出二维码显示弹窗 - 显示加载状态 - 成功生成并显示二维码图片 - 显示患者姓名 - 提示"请使用微信扫描二维码" ### 测试2:未配置小程序 1. 清空小程序配置(AppID或AppSecret) 2. 点击"小程序二维码"按钮 3. 预期结果: - 提示"小程序未配置,请先配置小程序信息" - 弹窗自动关闭 ### 测试3:重新生成二维码 1. 成功生成二维码后 2. 点击弹窗底部的"重新生成"按钮 3. 预期结果: - 显示加载状态 - 重新生成新的二维码 - 二维码URL可能不同(因为时间戳变化) ### 测试4:扫码验证 1. 生成二维码后 2. 使用微信扫描二维码 3. 预期结果: - 跳转到小程序 - 进入 pages/order/monad/monad 页面 - 页面能够获取到诊单ID和分享用户ID参数 ## 接口测试 ### 使用Postman测试 **接口**: POST `/adminapi/tcm.diagnosis/generateMiniProgramQrcode` **Headers**: ``` Content-Type: application/json token: {你的登录token} ``` **Body** (JSON): ```json { "diagnosis_id": 1, "patient_id": 1, "share_user_id": 1 } ``` **预期响应**: ```json { "code": 1, "msg": "success", "data": { "qrcode_url": "http://yourdomain.com/uploads/qrcode/20240306/qrcode_xxx.png", "diagnosis_id": 1, "patient_id": 1 } } ``` ## 常见问题排查 ### 问题1:提示"小程序未配置" - 检查是否已配置AppID和AppSecret - 确认配置已保存成功 ### 问题2:生成失败 - 检查服务器是否能访问微信API(https://api.weixin.qq.com) - 检查AppID和AppSecret是否正确 - 查看服务器错误日志 ### 问题3:二维码无法显示 - 检查uploads目录是否有写入权限 - 检查生成的图片路径是否正确 - 检查图片URL是否可访问 ### 问题4:扫码后无法跳转 - 确认小程序中存在 pages/order/monad/monad 页面 - 检查小程序是否已发布 - 确认AppID是否匹配 ## 数据库检查 生成的二维码图片存储在: ``` public/uploads/qrcode/{日期}/qrcode_{appId}_{md5}_{timestamp}.png ``` AccessToken缓存Key: ``` wx_access_token_{appId} ``` 可以通过以下方式查看缓存: ```php // 在PHP中 $token = cache('wx_access_token_' . $appId); var_dump($token); ``` ## 性能测试 ### 并发测试 - 同时生成多个二维码 - 观察AccessToken是否正确复用 - 检查是否有重复请求微信API ### 缓存测试 - 第一次生成二维码(会请求微信获取AccessToken) - 7000秒内再次生成(应使用缓存的AccessToken) - 观察响应时间差异 ## 安全检查 1. 权限验证:未登录用户无法访问 2. 参数验证:必填参数缺失时返回错误 3. 数据验证:诊单ID和患者ID必须存在 4. 文件安全:生成的图片文件名包含随机因素,避免被猜测