refactor(payment): 重构支付服务实现类
- 为 PaymentServiceImpl 类添加统一支付服务标识 - 在 PaymentController 中明确引用统一支付服务
This commit is contained in:
26
docs/run_shop_generator.sh
Executable file
26
docs/run_shop_generator.sh
Executable 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 "生成器运行完成!"
|
||||
75
docs/test_qr_business_type.md
Normal file
75
docs/test_qr_business_type.md
Normal 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格式)
|
||||
Reference in New Issue
Block a user