150 lines
3.4 KiB
Markdown
150 lines
3.4 KiB
Markdown
# 小程序二维码功能测试指南
|
||
|
||
## 前置条件
|
||
|
||
### 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. 文件安全:生成的图片文件名包含随机因素,避免被猜测
|