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

3.3 KiB
Raw Blame History

微信支付配置说明

配置项说明

根据微信支付官方文档,以下是简化的微信支付配置说明(仅包含必填参数):

1. 基础配置

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)

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)

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. 测试环境

    • 使用微信支付沙箱环境进行测试
    • 测试商户号和正式商户号不同
    • 测试环境需要特殊配置