Files
zyt/TEST_MINI_PROGRAM_QRCODE.md
T
2026-03-06 14:27:24 +08:00

150 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 小程序二维码功能测试指南
## 前置条件
### 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:生成失败
- 检查服务器是否能访问微信APIhttps://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. 文件安全:生成的图片文件名包含随机因素,避免被猜测