微信支付不是只复制一个二维码或填一个商户号就能完成。一个完整的网站支付链路通常会同时涉及微信公众号、微信支付商户平台和 WordPress 网站后台。三个地方的主体、AppID、商户号、密钥模式和回调地址必须对应,任何一项不一致,都可能出现“下单失败”“签名错误”或“用户付了钱但网站订单仍未支付”。

一、先把费用和难度说清楚
腾讯客服官方说明:微信认证年审费用和首次微信认证一样,都是 300 元/次,是支付给第三方专业审核机构的审核服务费。实际使用时,通常应当把它当作每年的固定认证成本来准备。
- 首次申请微信认证:通常需要支付 300 元审核服务费。
- 认证到期后的年审:再次支付 300 元/次。
- 特殊主体是否减免、具体支付页面和审核要求,以公众平台当时显示为准。

需要准备主体资料、公众号认证、微信支付商户号、AppID 关联、支付产品权限、API 密钥、证书和 HTTPS 回调。后期还要维护证书、密钥、域名、年审和订单回调,不适合只想“复制一个二维码马上收款”的用户。
| 成本或工作 | 是否长期存在 | 说明 |
|---|---|---|
| 公众号微信认证 | 通常每年 | 首次认证和年审均为 300 元/次;以公众平台实际显示为准。 |
| 微信支付交易手续费 | 每笔交易 | 它和 300 元认证费不是一回事。费率按主体、行业、产品和商户平台签约页面为准,不要照搬别人后台的数字。 |
| 域名与 HTTPS | 每年维护 | 支付回调必须长期稳定访问。域名到期、证书过期或安全策略误拦截都会影响自动到账。 |
| 证书与密钥维护 | 持续维护 | 密钥泄露要立即轮换;证书、公钥模式或接口版本变化时,网站插件也要同步更新。 |
如果你已经有同主体、已经认证的服务号和微信支付商户号,接入成本会低很多;如果什么都没有,就要把账号申请、审核等待和每年维护都算进去。
二、接入前需要准备哪些账号和资料
- 真实有效的营业执照和经营主体资料。
- 法定代表人或经营者身份资料、管理员微信和可用手机号。
- 结算账户资料。对公还是经营者个人银行卡,以主体类型和申请页面要求为准。
- 可以正常访问的正式网站,包含商品或服务内容、联系方式、用户协议、隐私政策和退款说明。
- 已经安装并启用、明确支持微信支付接口的 WordPress 支付插件。

PC 网站通常使用 Native 扫码支付;微信内打开网页通常使用 JSAPI 支付;手机外部浏览器可能涉及 H5 支付。三种场景不是同一个接口。插件只支持 Native 时,不代表它自动支持 JSAPI 或 H5。
公众号、服务号和小程序怎么选
| 你的实际场景 | 优先确认的账号或能力 | 为什么 |
|---|---|---|
| 电脑网站展示二维码 | 微信支付商户号 + Native 支付 | 用户用手机微信扫码付款,网站主要负责下单、展示二维码和接收回调。 |
| 微信内打开网站并直接付款 | 通常需要已认证服务号 + JSAPI 支付 | 要用公众号 AppID 获取用户身份并唤起微信支付;还要配置支付授权目录。 |
| 微信小程序内付款 | 小程序 AppID + 小程序支付能力 | 小程序与公众号不是同一个 AppID,插件也必须明确支持小程序场景。 |
| 手机外部浏览器付款 | 按准入条件确认 H5 支付 | 它不是公众号内 JSAPI,也不是电脑 Native,域名和产品权限需要单独核对。 |
如果你只做电脑端扫码,不要因为看到别人教程有 AppSecret 就盲目填写;如果要做微信内网页支付,也不要只开通 Native。先把“用户从哪里打开页面、用什么方式付款”确定下来,再选账号和产品。
三、认证公众号并申请微信支付商户号
1. 注册公众号并完成微信认证
- 进入微信公众平台,使用没有注册过其他公众平台账号的邮箱创建账号。
- 按真实业务选择账号类型。需要在微信内网页调用支付时,通常选择服务号,并确认当前主体具备相应能力。
- 填写企业或个体工商户资料,绑定管理员微信。
- 进入微信认证流程,提交营业执照、联系人、主体证明等材料,并按页面支付认证审核费。
- 认证通过后记录公众号的
AppID。AppSecret只在插件或授权流程明确要求时使用。

把认证到期时间登记到日历,建议提前准备主体资料和审核费用。认证过期可能影响部分接口能力;实际提醒时间、审核周期和是否存在特殊主体减免,以公众平台届时页面为准。
AppID 是应用身份,可以出现在配置页面;AppSecret 是敏感凭证,不能放进教程截图、聊天记录或前端代码。若怀疑泄露,应当立即在公众平台重置并同步修改网站配置。
2. 申请微信支付商户号
- 使用真实主体资料进入微信支付商户申请流程。
- 填写经营类目、网站地址、商品或服务说明、联系人和结算账户。
- 按要求完成账户验证、协议签署和管理员确认。
- 审核通过后进入商户平台,记录
商户号 mchid。

申请前先打开网站逐页检查:域名能否正常访问,商品或服务说明是否真实,价格和交付方式是否清楚,是否有联系方式、用户协议、隐私政策和退款说明。平台要求补充材料时,按提示补齐原件或清晰扫描件,不要用与当前主体无关的截图代替。
公众号认证的 300 元审核费和微信支付商户号的交易费率是两件事。不要看到“商户号申请”就以为已经包含公众号年审,也不要把支付手续费写成固定不变的数字。
四、关联 AppID 并开通需要的支付产品
- 登录微信支付商户平台,进入产品或 AppID 账号管理区域。
- 添加公众号或小程序的 AppID,并核对双方主体是否一致。
- 回到公众平台或对应管理员微信完成关联确认。只在商户平台单方面添加,通常还不算最终完成。
- 按网站场景开通支付产品:电脑端展示二维码优先检查 Native 支付;微信内网页检查 JSAPI 支付;外部手机浏览器再判断是否需要 H5 支付。
- 等待平台同步后,再到插件后台测试下单。
| 支付方式 | 用户使用场景 | 网站表现 |
|---|---|---|
| Native 支付 | 电脑浏览器 | 网站生成微信支付二维码,用户拿手机微信扫码付款。 |
| JSAPI 支付 | 微信内打开的网页 | 页面唤起微信支付控件,需要正确的公众号 AppID、用户身份和授权目录。 |
| H5 支付 | 手机外部浏览器 | 跳转到微信支付流程,准入和域名配置与 Native、JSAPI 不同。 |

公众号、商户号和网站经营主体不一致时,可能无法关联或无法开通对应能力。不要为了省事借用别人的公众号、商户号或主体资料。
五、设置 APIv3 密钥、证书和验签资料
支付插件要向微信支付发起下单请求,还要验证微信支付发来的回调,因此不仅要知道商户号,还必须配置签名和验签需要的密钥资料。
1. 设置 APIv3 密钥
- 进入商户平台的账户中心或 API 安全设置。
- 按平台要求设置 APIv3 密钥,并使用密码管理器离线保存。
- 不要把 APIv3 密钥理解为登录密码,也不要和旧版 APIv2 密钥混用。
- 如果插件字段只写“API 密钥”,先看插件文档确认它要的是 APIv2 还是 APIv3。
| 项目 | APIv2 | APIv3 |
|---|---|---|
| 常见插件字段 | API 密钥、APIv2 密钥、旧版 Key | APIv3 密钥、商户私钥、证书序列号、平台证书或微信支付公钥 |
| 主要用途 | 旧版接口的签名与校验 | 新版接口请求签名、通知解密与验签 |
| 能否互相代替 | 不能。插件要求哪一种就配置哪一种,不要用“试到能用”为办法。 | |
2. 准备商户 API 证书或微信支付公钥资料
不同插件可能采用不同验签方案。常见字段包括商户 API 证书序列号、商户私钥文件 apiclient_key.pem、平台证书,或微信支付公钥与公钥 ID。必须完全按照插件声明的接口版本填写,不能拿一个 PEM 文件随便替代另一个。

| 资料 | 用途 | 安全要求 |
|---|---|---|
| 商户号 mchid | 标识收款商户 | 必须和 AppID 关联关系、证书归属一致。 |
| APIv3 密钥 | 回调解密和接口安全处理 | 只保存在服务器端,不得公开。 |
| 商户私钥 | 对接口请求进行签名 | 不得上传到媒体库、公开网盘或网页目录。 |
| 证书序列号 | 告诉微信支付当前使用哪张商户证书 | 必须来自与当前私钥配套的证书。 |
| 平台证书或微信支付公钥 | 验证微信支付返回的数据 | 根据插件版本选择,不能混用两种模式。 |

教程只能展示字段位置,不能展示真实 APIv3 密钥、AppSecret、商户私钥或完整证书内容。发生泄露时,不能只删截图,必须在平台重新生成或轮换凭证。
3. 私钥和证书文件放在哪里
- 优先使用插件提供的安全上传或系统密钥存储方式;不要把 PEM 文件传到 WordPress 媒体库。
- 需要手工放文件时,放在网站公开目录之外,并只给运行 PHP 的账户读取权限。
- 不要把私钥提交到 Git 仓库、聊天工具、工单附件或可以直接下载的备份目录。
- 备份必须加密并限制访问;更换插件、服务器或维护人员后,要清点旧副本并按流程轮换凭证。
六、在 WordPress 后台填写微信支付参数
不同支付插件的字段名称会略有区别,但核心参数通常可以按下表对应。只填写插件明确要求的字段,不要把不相关的 AppSecret、APIv2 密钥和 APIv3 密钥来回试。
| 插件字段 | 填写内容 |
|---|---|
| AppID / 公众号 AppID | 公众平台或对应应用后台显示的 AppID,并且已经关联到当前商户号。 |
| AppSecret | 仅在插件或 JSAPI/网页授权流程明确要求时填写;Native 支付插件不一定需要。 |
| 商户号 / mchid | 微信支付商户平台显示的商户号。 |
| APIv3 密钥 | 商户平台 API 安全中设置的 APIv3 密钥。 |
| API 密钥 / APIv2 密钥 | 只有插件明确使用旧版接口时才填写,不能用 APIv3 密钥代替。 |
| 商户证书序列号 | 与当前商户 API 证书、私钥配套的序列号。 |
| 商户私钥 | 上传 apiclient_key.pem,或按插件要求粘贴完整 PEM 内容。 |
| 平台证书 / 微信支付公钥 | 根据插件采用的平台证书模式或微信支付公钥模式配置。 |
| 支付回调地址 | 插件自动生成的 notify_url,必须是公网可访问的 HTTPS 完整地址。 |

如果插件要求粘贴私钥文本,必须保留
-----BEGIN PRIVATE KEY-----、中间全部内容和 -----END PRIVATE KEY-----。多一个空格、少一行或复制错证书,都可能导致签名失败。
七、配置支付回调和服务器安全规则
用户扫码成功只代表微信端付款完成,网站订单能否自动变成“已支付”,主要取决于异步回调是否被网站正确接收和验证。
- 回调地址必须使用正式域名和有效 HTTPS 证书。
- 回调不能要求登录、不能弹验证码、不能被维护页面或安全验证拦截。
- 不要把整个网站关闭防火墙。只针对插件明确的回调路径做最小范围放行。
- 收到回调后必须校验签名、商户号、AppID、订单号、金额和币种,再更新订单状态。
- 同一通知可能重复发送,程序必须做幂等处理,防止重复加余额、加积分、发货或开通会员。
- 日志不能记录完整私钥、APIv3 密钥、AppSecret 或用户敏感支付数据。

CDN、WAF 和安全插件具体怎么设置
- 先从插件后台复制完整回调地址,记录准确路径,不要自己猜一个地址。
- 保持全站防火墙开启,只对这个准确路径取消登录验证、验证码、人机挑战和 JavaScript 挑战。
- 对回调路径关闭页面缓存、静态缓存和错误页替换,避免平台收到缓存内容而不是真实处理结果。
- 不要限制回调只能由浏览器访问,也不要强制跳转到登录页、首页或移动端页面。
- 放行后用插件测试功能或真实小额订单验证。只用浏览器打开看到页面,不代表 POST 回调一定能成功。
同步跳转页面可以被用户关闭,也可能被伪造。订单是否真正支付,应以服务器验证通过的异步通知或主动查单结果为准。
八、用真实小额订单完成上线验收
- 确认公众号认证、AppID 关联、支付产品、商户号和接口凭证都处于可用状态。
- 在网站创建一笔平台允许的真实小额订单,先测试电脑端 Native 扫码支付。
- 如果启用了 JSAPI 或 H5,再分别使用微信内浏览器和手机外部浏览器测试。
- 付款后检查 WordPress 订单是否自动变为已支付,会员、积分、余额或下载权限是否只发放一次。
- 在微信支付商户平台核对金额、商户订单号、微信支付订单号和付款时间。
- 再测试取消支付、支付超时、重复扫码、刷新支付页和重复通知。

- 公众号认证和微信支付产品都没有过期或被限制。
- AppID、商户号、证书和私钥属于同一套正式环境。
- 回调地址公网访问正常,HTTPS 证书链完整。
- 支付金额和网站订单金额完全一致。
- 重复回调不会重复加金币、积分、余额、会员时间或发货。
- 退款、关闭订单和异常订单有明确的人工处理流程。
- 密钥和私钥没有出现在网页源代码、日志、截图或备份下载地址中。
九、常见问题怎么排查

1. 提示 AppID 与商户号没有关联
检查商户平台是否已经添加该 AppID,并在公众号或对应管理员侧完成确认;再核对双方主体和正式环境是否一致。刚完成关联时,也可能需要等待后台同步。
2. 提示签名错误或证书序列号错误
确认商户私钥和证书序列号是否来自同一张商户 API 证书;检查插件使用 APIv2 还是 APIv3;不要把平台证书、商户证书和微信支付公钥互相替换。
3. 能生成二维码,但扫码后提示当前商户不可用
检查 Native 支付产品是否已开通、商户号是否受限、经营类目是否符合当前交易内容,并核对网站是否误用了沙箱、测试或其他主体的配置。
4. 用户付款成功,网站订单仍未支付
优先检查回调地址 HTTP 状态码、HTTPS 证书、CDN/WAF/安全插件拦截、APIv3 解密和验签日志。再核对金额、订单号和商户号校验是否通过。
5. 电脑扫码正常,微信内网页不能支付
Native 和 JSAPI 是不同支付产品。检查是否开通 JSAPI、是否配置支付授权目录、用户身份是否通过公众号网页授权取得,以及插件是否真正支持该场景。
6. 换了插件以后原参数全部报错
先看新插件使用的平台证书模式还是微信支付公钥模式、使用 APIv2 还是 APIv3。不要把旧插件字段直接原样复制到新插件。必要时在测试环境重新整理一套配置映射再上线。




















暂无评论内容