69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
|
|
# PayPal配置检查指南
|
|||
|
|
|
|||
|
|
## 错误信息
|
|||
|
|
```
|
|||
|
|
Username must not be null
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这个错误表示PayPal的`clientId`(Client ID)配置为空。
|
|||
|
|
|
|||
|
|
## 问题原因
|
|||
|
|
|
|||
|
|
Spring Boot的`@ConfigurationProperties`在绑定配置时,需要确保:
|
|||
|
|
1. 配置文件中的属性名格式正确
|
|||
|
|
2. 配置类能够正确加载
|
|||
|
|
3. 配置文件被正确读取
|
|||
|
|
|
|||
|
|
## 解决方案
|
|||
|
|
|
|||
|
|
### 1. 检查配置文件
|
|||
|
|
|
|||
|
|
确保 `application-dev.yml` 中有以下配置:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
paypal:
|
|||
|
|
client-id: AdGYUZpvLuHR30dybOApvM-RNB1pVKtd74SVfh-6TK52xV-1JEBddHVMCWuDdyyHri4DXd4kABBi7Icb
|
|||
|
|
client-secret: ENblspyRmwsOU_PWFurlhEYUF5Da6aYKl0pjK4ehm7p3R5aSqvbpaF_YsIIs8v0ty1c9WJu15XP-Fe_1
|
|||
|
|
mode: sandbox
|
|||
|
|
enabled: true
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 检查Spring Boot配置
|
|||
|
|
|
|||
|
|
确保主应用类或配置类启用了配置属性绑定。
|
|||
|
|
|
|||
|
|
### 3. 重启应用
|
|||
|
|
|
|||
|
|
修改配置后,**必须重启应用**才能生效。
|
|||
|
|
|
|||
|
|
### 4. 验证配置加载
|
|||
|
|
|
|||
|
|
启动应用后,检查日志中是否有PayPal配置相关的错误信息。
|
|||
|
|
|
|||
|
|
## 配置属性映射
|
|||
|
|
|
|||
|
|
Spring Boot会自动将以下格式进行映射:
|
|||
|
|
- `client-id` (kebab-case) → `clientId` (camelCase)
|
|||
|
|
- `client-secret` (kebab-case) → `clientSecret` (camelCase)
|
|||
|
|
|
|||
|
|
## 调试方法
|
|||
|
|
|
|||
|
|
如果配置仍然无法加载,可以:
|
|||
|
|
|
|||
|
|
1. **添加启动日志**:在`PayPalProperties`类中添加`@PostConstruct`方法打印配置值
|
|||
|
|
2. **检查环境变量**:确认使用的是`dev`环境(`spring.profiles.active=dev`)
|
|||
|
|
3. **检查配置文件位置**:确保`application-dev.yml`在`src/main/resources`目录下
|
|||
|
|
|
|||
|
|
## 临时解决方案
|
|||
|
|
|
|||
|
|
如果配置仍然无法加载,可以在代码中临时硬编码(仅用于测试):
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
// 仅用于测试,生产环境必须使用配置文件
|
|||
|
|
if (clientId == null) {
|
|||
|
|
clientId = "AdGYUZpvLuHR30dybOApvM-RNB1pVKtd74SVfh-6TK52xV-1JEBddHVMCWuDdyyHri4DXd4kABBi7Icb";
|
|||
|
|
clientSecret = "ENblspyRmwsOU_PWFurlhEYUF5Da6aYKl0pjK4ehm7p3R5aSqvbpaF_YsIIs8v0ty1c9WJu15XP-Fe_1";
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|