refactor(payment): 重构支付服务实现类

- 为 PaymentServiceImpl 类添加统一支付服务标识
- 在 PaymentController 中明确引用统一支付服务
This commit is contained in:
2025-08-29 19:25:33 +08:00
parent 9bcf28626d
commit ed695bcf66
4 changed files with 2 additions and 2 deletions

26
docs/run_shop_generator.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/bash
# 设置 JAVA_HOME如果需要
# export JAVA_HOME=/path/to/java
# 构建类路径
CLASSPATH="target/test-classes:target/classes"
# 添加 Maven 依赖
MAVEN_REPO="$HOME/.m2/repository"
# 添加必要的依赖 JAR 文件
CLASSPATH="$CLASSPATH:$MAVEN_REPO/com/baomidou/mybatis-plus-generator/3.5.3/mybatis-plus-generator-3.5.3.jar"
CLASSPATH="$CLASSPATH:$MAVEN_REPO/com/baomidou/mybatis-plus-core/3.4.3.3/mybatis-plus-core-3.4.3.3.jar"
CLASSPATH="$CLASSPATH:$MAVEN_REPO/com/baomidou/mybatis-plus-annotation/3.4.3.3/mybatis-plus-annotation-3.4.3.3.jar"
CLASSPATH="$CLASSPATH:$MAVEN_REPO/com/ibeetl/beetl/3.15.10.RELEASE/beetl-3.15.10.RELEASE.jar"
CLASSPATH="$CLASSPATH:$MAVEN_REPO/mysql/mysql-connector-java/8.0.29/mysql-connector-java-8.0.29.jar"
CLASSPATH="$CLASSPATH:$MAVEN_REPO/org/mybatis/mybatis/3.5.7/mybatis-3.5.7.jar"
echo "运行 ShopGenerator..."
echo "类路径: $CLASSPATH"
# 运行生成器
java -cp "$CLASSPATH" com.gxwebsoft.generator.ShopGenerator
echo "生成器运行完成!"

View File

@@ -0,0 +1,75 @@
# QR码BusinessType测试说明
## 问题描述
`createEncryptedQrImage`接口传入`businessType`参数后,生成的二维码内容中没有包含该字段。
## 问题原因
1. **JSON库导入错误**:代码中混合使用了`JSONUtil`(项目自定义)和`JSONObject`fastjson
2. **方法调用不一致**:部分地方使用了不存在的`JSONUtil.toJSONString`方法
## 修复内容
1. **统一使用fastjson**将所有JSON操作统一使用`JSONObject`
2. **修复方法调用**
- `JSONUtil.toJSONString``JSONObject.toJSONString`
- `JSONUtil.parseObject``JSONObject.parseObject`
## 修复后的二维码内容结构
### 带businessType的二维码内容
```json
{
"token": "生成的token",
"data": "加密的数据",
"type": "encrypted",
"businessType": "LOGIN"
}
```
### 不带businessType的二维码内容
```json
{
"token": "生成的token",
"data": "加密的数据",
"type": "encrypted"
}
```
## 测试方法
### 1. 测试带businessType的接口
```bash
curl "http://localhost:8080/api/qr-code/create-encrypted-qr-image?data=测试数据&businessType=LOGIN&size=200x200&expireMinutes=30"
```
### 2. 扫描生成的二维码
扫描后应该能看到包含`businessType: "LOGIN"`的JSON内容
### 3. 验证解密
```bash
curl -X POST "http://localhost:8080/api/qr-code/verify-and-decrypt-qr-with-type" \
-H "Content-Type: application/json" \
-d '{"qrContent": "扫描得到的JSON字符串"}'
```
返回结果应该包含businessType字段
```json
{
"code": 200,
"message": "验证和解密成功",
"data": {
"originalData": "测试数据",
"businessType": "LOGIN"
}
}
```
## 相关文件修改
- `EncryptedQrCodeUtil.java` - 修复JSON序列化问题
- `QrCodeController.java` - 添加businessType参数支持
- `GlobalExceptionHandler.java` - 添加参数验证异常处理
## 注意事项
现在所有生成加密二维码的接口都正确支持businessType参数
-`POST /create-encrypted-qr-code` (JSON格式)
-`GET /create-encrypted-qr-image` (URL参数)
-`POST /create-business-encrypted-qr-code` (JSON格式)