njzscloud/z-doc/微信支付配置说明.md

117 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 微信支付配置说明
## 配置项说明
根据[微信支付官方文档](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. **测试环境**
- 使用微信支付沙箱环境进行测试
- 测试商户号和正式商户号不同
- 测试环境需要特殊配置