117 lines
3.3 KiB
Markdown
117 lines
3.3 KiB
Markdown
# 微信支付配置说明
|
||
|
||
## 配置项说明
|
||
|
||
根据[微信支付官方文档](https://pay.weixin.qq.com/doc/v3/merchant/4012791897),以下是简化的微信支付配置说明(仅包含必填参数):
|
||
|
||
### 1. 基础配置
|
||
|
||
```yaml
|
||
wechat:
|
||
pay:
|
||
# 子商户配置
|
||
sub-app-id: wx3c06d9dd4e56c58d # 子商户APPID
|
||
sub-mch-id: 1900000100 # 子商户号
|
||
|
||
# API密钥(32位字符串)
|
||
api-key: your-32-character-api-key-here
|
||
|
||
# 证书序列号
|
||
cert-serial-no: your-cert-serial-number
|
||
|
||
# 私钥文件路径
|
||
private-key-path: classpath:cert/apiclient_key.pem
|
||
|
||
# 支付回调地址
|
||
notify-url: https://your-domain.com/api/payment/wechat/callback
|
||
```
|
||
|
||
### 2. 参数说明
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| sub-app-id | String | 是 | 子商户APPID |
|
||
| sub-mch-id | String | 是 | 子商户号 |
|
||
| api-key | String | 是 | API密钥,32位字符串 |
|
||
| cert-serial-no | String | 是 | 证书序列号 |
|
||
| private-key-path | String | 是 | 私钥文件路径 |
|
||
| notify-url | String | 是 | 支付成功回调地址 |
|
||
|
||
### 3. 证书配置
|
||
|
||
1. 将微信支付商户私钥文件 `apiclient_key.pem` 放置在 `src/main/resources/cert/` 目录下
|
||
2. 确保证书序列号与私钥文件匹配
|
||
3. 私钥文件格式应为 PEM 格式
|
||
|
||
### 4. 回调地址配置
|
||
|
||
- 支付回调地址:用于接收支付成功通知
|
||
- 退款回调地址:用于接收退款成功通知
|
||
- 回调地址必须是 HTTPS 协议
|
||
- 回调地址需要能够接收 POST 请求
|
||
|
||
### 5. 安全注意事项
|
||
|
||
1. **API密钥安全**:
|
||
- API密钥是32位字符串,请妥善保管
|
||
- 不要将API密钥提交到代码仓库
|
||
- 建议使用环境变量或配置中心管理
|
||
|
||
2. **证书安全**:
|
||
- 私钥文件不要提交到代码仓库
|
||
- 确保证书文件权限设置正确
|
||
- 定期更新证书
|
||
|
||
3. **回调地址安全**:
|
||
- 使用HTTPS协议
|
||
- 验证回调签名
|
||
- 处理重复通知
|
||
|
||
### 6. 环境配置
|
||
|
||
#### 开发环境 (application-dev.yml)
|
||
```yaml
|
||
wechat:
|
||
pay:
|
||
# 使用测试商户号和测试APPID
|
||
sub-app-id: wx3c06d9dd4e56c58d
|
||
sub-mch-id: 1900000100
|
||
api-key: your-test-api-key
|
||
cert-serial-no: your-test-cert-serial
|
||
private-key-path: classpath:cert/test_apiclient_key.pem
|
||
notify-url: https://test-domain.com/api/payment/wechat/callback
|
||
```
|
||
|
||
#### 生产环境 (application-prod.yml)
|
||
```yaml
|
||
wechat:
|
||
pay:
|
||
# 使用正式商户号和正式APPID
|
||
sub-app-id: wx3c06d9dd4e56c58d
|
||
sub-mch-id: 1900000100
|
||
api-key: ${WECHAT_PAY_API_KEY}
|
||
cert-serial-no: ${WECHAT_PAY_CERT_SERIAL}
|
||
private-key-path: classpath:cert/prod_apiclient_key.pem
|
||
notify-url: https://your-domain.com/api/payment/wechat/callback
|
||
```
|
||
|
||
### 7. 常见问题
|
||
|
||
1. **证书序列号获取**:
|
||
- 登录微信支付商户平台
|
||
- 在"账户中心" -> "API安全" -> "API证书"中查看
|
||
|
||
2. **API密钥设置**:
|
||
- 在微信支付商户平台设置32位API密钥
|
||
- 确保与代码中配置的密钥一致
|
||
|
||
3. **回调地址配置**:
|
||
- 确保回调地址可以正常访问
|
||
- 使用HTTPS协议
|
||
- 处理跨域问题
|
||
|
||
4. **测试环境**:
|
||
- 使用微信支付沙箱环境进行测试
|
||
- 测试商户号和正式商户号不同
|
||
- 测试环境需要特殊配置
|