💰 微信公众号支付配置指南
本文档详细介绍如何在 商城系统中配置微信公众号支付功能
📋 目录
💡 前提条件
在配置微信公众号支付前,请确保已满足以下条件:
必需条件
| 要求 | 说明 | 获取方式 |
|---|---|---|
| ✅ 微信服务号 | 已认证的服务号 | 微信公众平台申请 |
| ✅ 微信支付商户号 | 已开通微信支付 | 微信支付商户平台申请 |
| ✅ 商城系统 | 已部署运行 | 按照部署文档安装 |
| ✅ HTTPS 域名 | 已备案的域名 | 云服务商购买 |
| ✅ 企业认证 | 营业执照等资料 | 企业提供 |
说白了: 个人公众号(订阅号)无法开通支付功能,必须是企业认证的服务号!
账号要求
微信服务号:
- ✅ 已完成企业认证
- ✅ 认证类型为"服务号"
- ✅ 有管理员权限
微信支付商户号:
- ✅ 已审核通过
- ✅ 账户状态正常
- ✅ 已签约产品服务
🏦 开通微信支付
步骤 1:申请微信支付商户号
申请入口: 微信公众平台 → 微信支付 → 开通
所需资料:
| 资料类型 | 说明 | 示例 |
|---|---|---|
| 营业执照 | 企业营业执照扫描件 | JPG/PNG,小于2MB |
| 法人身份证 | 法人身份证正反面 | 清晰可见 |
| 银行账户 | 对公账户或法人银行卡 | 用于结算 |
| 门店照片 | 经营场所照片 | 3-5张 |
| 联系方式 | 联系人姓名、电话、邮箱 | 用于接收通知 |
审核周期:
- 正常情况:1-5 个工作日
- 补充资料:可能延长 3-7 天
步骤 2:签约产品服务
必需签约的产品:
| 产品名称 | 用途 | 费率 |
|---|---|---|
| JSAPI 支付 | 公众号内支付 | 0.6% |
| Native 支付 | 扫码支付(可选) | 0.6% |
| H5 支付 | H5 页面支付(可选) | 0.6% |
签约步骤:
- 登录微信支付商户平台
- 产品中心 → 我的产品
- 找到对应产品 → 开通
- 阅读协议 → 签约
步骤 3:设置支付目录
为什么需要设置支付目录?
微信支付为了安全,只允许在指定的目录下发起支付请求。
如果支付目录设置不正确,会提示"支付目录未配置"错误。配置路径: 微信支付商户平台 → 产品中心 → 开发配置 → 支付配置 → 添加
支付目录格式:
https://your-domain.com/⚠️ 注意事项:
- 必须以
https://开头 - 必须以
/结尾 - 最多可配置 5 个支付目录
- 建议直接配置域名根目录
示例配置:
正确:https://mall.example.com/
正确:https://www.example.com/wechat/
错误:http://mall.example.com/ # 不是 HTTPS
错误:https://mall.example.com # 缺少结尾的 /🔑 获取配置信息
信息清单
配置微信公众号支付需要以下信息:
| 参数名称 | 说明 | 获取位置 |
|---|---|---|
| AppID | 公众号应用ID | 微信公众平台 → 开发 → 基本配置 |
| AppSecret | 公众号应用密钥 | 微信公众平台 → 开发 → 基本配置 |
| 商户号 | 微信支付商户号 | 微信支付商户平台 → 账户中心 |
| 商户密钥 | 支付密钥(API密钥) | 微信支付商户平台 → 账户中心 → API安全 |
| 证书文件 | apiclient_cert.pem | 微信支付商户平台 → 账户中心 → API安全 |
| 证书密钥 | apiclient_key.pem | 微信支付商户平台 → 账户中心 → API安全 |
步骤 1:获取公众号 AppID 和 AppSecret
操作路径: 微信公众平台 → 开发 → 基本配置
AppID:
- 直接显示,可以复制
AppSecret:
- 点击"重置"按钮
- 管理员扫码确认
- 生成新的 AppSecret(立即复制保存)
⚠️ 安全提示:
AppSecret 仅在生成时显示一次,务必妥善保管!
建议保存到密码管理器中。步骤 2:获取商户号
操作路径: 微信支付商户平台 → 账户中心 → 商户信息
商户号格式:
示例:1234567890
说明:10位数字步骤 3:设置商户密钥(API密钥)
操作路径: 微信支付商户平台 → 账户中心 → API安全 → 设置API密钥
密钥要求:
- 长度:32位
- 字符:大小写字母 + 数字
- 随机性:建议使用工具生成
生成密钥工具(在线):
# Linux/Mac 命令行生成
openssl rand -hex 16
# 或使用在线工具
https://suijimimashengcheng.bmcx.com/设置步骤:
- 点击"设置密钥"
- 输入32位密钥
- 管理员扫码确认
- 完成设置
⚠️ 重要: 设置后请妥善保管,后续无法查看!
步骤 4:下载 API 证书
操作路径: 微信支付商户平台 → 账户中心 → API安全 → 申请API证书
证书类型:
| 类型 | 文件名 | 用途 |
|---|---|---|
| 证书文件 | apiclient_cert.pem | 请求时使用 |
| 证书密钥 | apiclient_key.pem | 请求时使用 |
| 证书根证书 | rootca.pem | 可选 |
下载步骤:
- 点击"申请证书"
- 下载证书工具
- 运行工具,生成证书请求串
- 提交证书请求串
- 管理员扫码确认
- 下载证书压缩包
证书存放位置:
本系统系统目录/cert/
├── apiclient_cert.pem
└── apiclient_key.pem⚙️ 配置公众号支付
步骤 1:登录 系统管理后台
访问地址:
https://your-domain.com/admin登录账号: 平台管理员账号
步骤 2:进入支付配置页面
菜单路径:
设置 → 系统设置 → 平台配置 → 支付/充值 → 公众号支付配置步骤 3:填写配置信息
配置参数:
| 配置项 | 填写内容 | 示例 |
|---|---|---|
| 公众号AppID | 微信公众号AppID | wxabcdef123456 |
| 公众号AppSecret | 微信公众号AppSecret | abc123def456... |
| 微信支付商户号 | 微信支付商户号 | 1234567890 |
| 微信支付密钥 | 商户API密钥(32位) | abc123...(32位) |
| 证书文件路径 | apiclient_cert.pem 路径 | /cert/apiclient_cert.pem |
| 密钥文件路径 | apiclient_key.pem 路径 | /cert/apiclient_key.pem |
| 支付回调地址 | 系统自动生成 | 通常无需修改 |
配置示例(截图说明):
┌─────────────────────────────────────────────┐
│ 公众号支付配置 │
├─────────────────────────────────────────────┤
│ 公众号AppID: [wxabcdef123456 ] │
│ 公众号AppSecret: [abc123def456... ] │
│ 微信支付商户号: [1234567890 ] │
│ 微信支付密钥: [32位密钥... ] │
│ 证书文件路径: [/cert/apiclient_cert.pem] │
│ 密钥文件路径: [/cert/apiclient_key.pem ] │
│ 支付回调地址: [https://... ] │
│ │
│ [提交保存] │
└─────────────────────────────────────────────┘步骤 4:提交保存
- 检查所有信息是否填写正确
- 点击"提交保存"按钮
- 等待系统验证配置
- 看到"保存成功"提示
✅ 配置完成!
💳 配置充值功能
为什么要配置充值功能?
充值功能用途:
- 用户可以给账户充值余额
- 使用余额支付订单
- 充值可设置赠送金额
⚠️ 重要提示:
如果您的系统未上线或正在审核期间,
请务必关闭充值功能,避免违规被封号!步骤 1:进入充值配置
菜单路径:
设置 → 系统设置 → 平台配置 → 支付/充值 → 充值配置步骤 2:配置充值参数
配置项说明:
| 配置项 | 说明 | 推荐值 |
|---|---|---|
| 公众号充值开关 | 是否允许公众号充值 | 关闭(审核期) |
| 最低充值金额 | 单次最低充值额度 | ¥1 |
| 充值金额选项 | 快捷充值金额 | ¥10, ¥50, ¥100, ¥500 |
| 赠送设置 | 充值赠送规则 | 可选 |
| 充值说明 | 充值页面显示的说明 | 自定义 |
赠送设置示例:
| 充值金额 | 赠送金额 | 实际到账 |
|---|---|---|
| ¥100 | ¥0 | ¥100 |
| ¥500 | ¥50 | ¥550 |
| ¥1000 | ¥150 | ¥1150 |
| ¥5000 | ¥1000 | ¥6000 |
步骤 3:审核期间的设置
⚠️ 在以下情况下,务必关闭充值功能:
- 系统刚上线 - 正在微信审核
- 功能变更 - 提交审核期间
- 测试阶段 - 内部测试阶段
关闭方法:
充值配置 → 公众号充值开关 → 选择"关闭" → 提交为什么要关闭?
微信审核时如果发现充值功能,
可能会要求提供支付许可、金融牌照等资质。
待审核通过后再开启充值功能更安全。步骤 4:审核通过后开启
开启时机:
- ✅ 公众号所有功能审核通过
- ✅ 系统已稳定运行
开启方法:
充值配置 → 公众号充值开关 → 选择"开启" → 提交✅ 测试验证
测试前准备
测试账号:
- 关注你的微信服务号
- 准备 1 元测试金额
测试环境:
- 确保在配置的支付目录下
- 使用微信内置浏览器访问
测试步骤
测试 1:商品下单支付
打开商城
- 在微信中打开商城首页
- 浏览商品列表
选择商品下单
- 选择一个测试商品
- 点击"立即购买"
- 填写收货地址
提交订单
- 确认订单信息
- 点击"提交订单"
- 进入支付页面
完成支付
- 点击"微信支付"
- 输入支付密码
- 完成支付
验证结果
- 查看订单状态是否为"已支付"
- 检查后台是否收到支付回调
- 查看商户平台是否有交易记录
测试 2:余额充值(如已开启)
进入充值页面
- 个人中心 → 我的钱包 → 充值
选择充值金额
- 选择或输入充值金额
- 点击"立即充值"
完成支付
- 调起微信支付
- 完成支付
验证余额
- 返回钱包页面
- 检查余额是否增加
- 查看充值记录
成功标志
支付流程正常:
- ✅ 能正常调起微信支付
- ✅ 支付成功后订单状态更新
- ✅ 商户平台显示交易记录
- ✅ 用户收到支付成功通知
如果失败:
- ❌ 提示"支付目录未配置" → 检查支付目录设置
- ❌ 提示"签名错误" → 检查商户密钥配置
- ❌ 提示"证书错误" → 检查证书文件路径
- ❌ 支付成功但订单未更新 → 检查支付回调地址
❓ 常见问题
Q1:提示"当前页面的URL未注册"?
原因: 支付目录未配置或配置错误
解决方案:
1. 登录微信支付商户平台
2. 产品中心 → 开发配置 → 支付配置
3. 添加或修改支付目录
4. 格式:https://your-domain.com/
5. 必须以 / 结尾,使用 HTTPSQ2:提示"签名错误"?
原因: 商户密钥配置错误
解决方案:
1. 检查商户密钥是否为32位
2. 确认是否有多余的空格或换行
3. 重新设置商户密钥并更新配置
4. 清除系统缓存重试Q3:支付成功但订单未更新?
原因: 支付回调未成功
排查步骤:
1. 检查服务器日志
2. 确认回调地址能正常访问
3. 检查防火墙是否拦截微信IP
4. 验证回调处理代码是否正常防火墙白名单(微信支付IP段):
101.226.103.0/24
101.226.233.0/24Q4:证书错误怎么办?
可能原因:
- 证书文件路径错误
- 证书文件权限不足
- 证书文件格式错误
解决方案:
# 1. 检查文件是否存在
ls -la /path/to/cert/
# 2. 检查文件权限(需要可读)
chmod 644 apiclient_cert.pem
chmod 644 apiclient_key.pem
# 3. 验证证书格式
openssl x509 -in apiclient_cert.pem -text -nooutQ5:能否使用测试号测试支付?
答案: 不能
说明:
微信支付必须使用已认证的服务号。
测试号无法开通微信支付功能。
只能使用真实账号,进行小额测试(如1元)。Q6:支付费率是多少?
官方费率:
| 支付方式 | 费率 | 说明 |
|---|---|---|
| JSAPI支付 | 0.6% | 公众号内支付 |
| Native支付 | 0.6% | 扫码支付 |
| H5支付 | 0.6% | 手机浏览器支付 |
| 小程序支付 | 0.6% | 小程序内支付 |
结算周期:
- T+1:次日到账
- T+7:7日后到账
手续费计算:
用户支付:¥100
手续费:¥100 × 0.6% = ¥0.6
实际到账:¥100 - ¥0.6 = ¥99.4🎯 最佳实践
1. 安全建议
密钥管理:
- ✅ 定期更换商户密钥(建议3-6个月)
- ✅ AppSecret 不提交到代码仓库
- ✅ 使用环境变量存储敏感信息
- ✅ 限制后台管理员权限
支付安全:
- ✅ 启用 HTTPS(必须)
- ✅ 验证支付回调签名
- ✅ 记录所有支付日志
- ✅ 设置支付金额上限
证书安全:
- ✅ 证书文件权限设为 644
- ✅ 定期备份证书文件
- ✅ 证书到期前及时更新
2. 业务配置建议
充值功能:
审核期: 关闭充值功能
测试期: 开启充值,限制最大金额
正式运营: 正常开启,设置合理赠送金额设置:
- 最低充值:¥1-¥10(防止大量小额测试)
- 最高充值:¥5000-¥10000(根据业务)
- 赠送比例:5%-20%(根据运营策略)
3. 运营建议
新系统上线:
- 先以"展示"模式运营 1-2 周
- 待微信审核通过后开启支付
- 开启支付初期小范围测试
- 确认稳定后全面推广
支付异常处理:
- 建立支付监控机制
- 设置异常告警(失败率 > 5%)
- 准备应急预案
对账管理:
- 每日对账(系统订单 vs 微信账单)
- 每月核对总额
- 保存所有交易记录
- 定期导出账单备份
4. 性能优化
支付性能:
- 使用异步回调处理订单
- 支付回调接口优化响应速度
- 设置合理的超时时间
并发处理:
低并发(< 100单/小时): 默认配置即可
中并发(100-1000单/小时):启用队列处理
高并发(> 1000单/小时): 分布式队列 + 缓存📊 总结
配置流程回顾
开通微信支付 → 获取配置信息 → 上传证书文件 →
配置系统参数 → 设置支付目录 → 配置充值功能 →
测试验证 → 正式上线关键要点
| 要点 | 说明 |
|---|---|
| ✅ 服务号 | 必须是已认证的企业服务号 |
| ✅ 证书 | 上传并配置正确的证书路径 |
| ✅ 密钥 | 32位商户密钥,妥善保管 |
| ✅ 支付目录 | HTTPS,以 / 结尾 |
| ✅ 充值开关 | 审核期必须关闭 |
| ✅ 测试验证 | 配置后务必测试 |
检查清单
上线前检查:
- [ ] 公众号已认证
- [ ] 微信支付已开通并签约
- [ ] 配置信息填写正确
- [ ] 证书文件已上传
- [ ] 支付目录已配置
- [ ] 充值功能状态正确
- [ ] 已完成支付测试
🔗 相关文档
📚 参考资源
官方文档: