WordPress 网站接入微信支付完整教程:公众号认证、商户号、APIv3 密钥与支付回调

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

网站接入微信支付七步总流程图
图 1:从认证公众号、申请商户号到配置 API 安全和小额测试,必须按顺序完成。

一、先把费用和难度说清楚

公众号认证不是一次性交费永久使用

300 元/ 次

腾讯客服官方说明:微信认证年审费用和首次微信认证一样,都是 300 元/次,是支付给第三方专业审核机构的审核服务费。实际使用时,通常应当把它当作每年的固定认证成本来准备。

  • 首次申请微信认证:通常需要支付 300 元审核服务费。
  • 认证到期后的年审:再次支付 300 元/次。
  • 特殊主体是否减免、具体支付页面和审核要求,以公众平台当时显示为准。
微信公众号首次认证年审和交易手续费对比图
图 2:首次认证和年审均为 300 元/次;交易手续费是另一笔费用,以商户后台为准。
这套接入比普通聚合收款码复杂
需要准备主体资料、公众号认证、微信支付商户号、AppID 关联、支付产品权限、API 密钥、证书和 HTTPS 回调。后期还要维护证书、密钥、域名、年审和订单回调,不适合只想“复制一个二维码马上收款”的用户。
成本或工作 是否长期存在 说明
公众号微信认证 通常每年 首次认证和年审均为 300 元/次;以公众平台实际显示为准。
微信支付交易手续费 每笔交易 它和 300 元认证费不是一回事。费率按主体、行业、产品和商户平台签约页面为准,不要照搬别人后台的数字。
域名与 HTTPS 每年维护 支付回调必须长期稳定访问。域名到期、证书过期或安全策略误拦截都会影响自动到账。
证书与密钥维护 持续维护 密钥泄露要立即轮换;证书、公钥模式或接口版本变化时,网站插件也要同步更新。

如果你已经有同主体、已经认证的服务号和微信支付商户号,接入成本会低很多;如果什么都没有,就要把账号申请、审核等待和每年维护都算进去。

二、接入前需要准备哪些账号和资料

1公众号或其他可关联 AppID做微信内 JSAPI 支付时,常见做法是使用已认证服务号。
2微信支付商户号用于收款、结算、开通支付产品和生成接口凭证。
3HTTPS 网站网站、回调地址和支付插件必须可以从公网稳定访问。

  • 真实有效的营业执照和经营主体资料。
  • 法定代表人或经营者身份资料、管理员微信和可用手机号。
  • 结算账户资料。对公还是经营者个人银行卡,以主体类型和申请页面要求为准。
  • 可以正常访问的正式网站,包含商品或服务内容、联系方式、用户协议、隐私政策和退款说明。
  • 已经安装并启用、明确支持微信支付接口的 WordPress 支付插件。
微信支付接入前账号主体资料和网站条件清单
图 3:账号、主体资料和网站条件都准备完成后,再进入接口配置。
先确认插件支持哪一种接口
PC 网站通常使用 Native 扫码支付;微信内打开网页通常使用 JSAPI 支付;手机外部浏览器可能涉及 H5 支付。三种场景不是同一个接口。插件只支持 Native 时,不代表它自动支持 JSAPI 或 H5。

公众号、服务号和小程序怎么选

你的实际场景 优先确认的账号或能力 为什么
电脑网站展示二维码 微信支付商户号 + Native 支付 用户用手机微信扫码付款,网站主要负责下单、展示二维码和接收回调。
微信内打开网站并直接付款 通常需要已认证服务号 + JSAPI 支付 要用公众号 AppID 获取用户身份并唤起微信支付;还要配置支付授权目录。
微信小程序内付款 小程序 AppID + 小程序支付能力 小程序与公众号不是同一个 AppID,插件也必须明确支持小程序场景。
手机外部浏览器付款 按准入条件确认 H5 支付 它不是公众号内 JSAPI,也不是电脑 Native,域名和产品权限需要单独核对。

如果你只做电脑端扫码,不要因为看到别人教程有 AppSecret 就盲目填写;如果要做微信内网页支付,也不要只开通 Native。先把“用户从哪里打开页面、用什么方式付款”确定下来,再选账号和产品。

三、认证公众号并申请微信支付商户号

1. 注册公众号并完成微信认证

  1. 进入微信公众平台,使用没有注册过其他公众平台账号的邮箱创建账号。
  2. 按真实业务选择账号类型。需要在微信内网页调用支付时,通常选择服务号,并确认当前主体具备相应能力。
  3. 填写企业或个体工商户资料,绑定管理员微信。
  4. 进入微信认证流程,提交营业执照、联系人、主体证明等材料,并按页面支付认证审核费。
  5. 认证通过后记录公众号的 AppIDAppSecret 只在插件或授权流程明确要求时使用。
微信公众号首次认证审核和每年年审费用时间线
图 9:首次认证和到期年审是两次独立审核,通常都按 300 元/次准备,并提前记录认证到期时间。
年审不要等到最后一天
把认证到期时间登记到日历,建议提前准备主体资料和审核费用。认证过期可能影响部分接口能力;实际提醒时间、审核周期和是否存在特殊主体减免,以公众平台届时页面为准。
AppID 和 AppSecret 不是一回事
AppID 是应用身份,可以出现在配置页面;AppSecret 是敏感凭证,不能放进教程截图、聊天记录或前端代码。若怀疑泄露,应当立即在公众平台重置并同步修改网站配置。

2. 申请微信支付商户号

  1. 使用真实主体资料进入微信支付商户申请流程。
  2. 填写经营类目、网站地址、商品或服务说明、联系人和结算账户。
  3. 按要求完成账户验证、协议签署和管理员确认。
  4. 审核通过后进入商户平台,记录 商户号 mchid
微信支付商户号申请材料审核签约和取得商户号流程
图 10:先按清单准备主体、管理员、结算账户、经营类目和网站证明,再提交审核、验证并签署协议。

申请前先打开网站逐页检查:域名能否正常访问,商品或服务说明是否真实,价格和交付方式是否清楚,是否有联系方式、用户协议、隐私政策和退款说明。平台要求补充材料时,按提示补齐原件或清晰扫描件,不要用与当前主体无关的截图代替。

公众号认证的 300 元审核费和微信支付商户号的交易费率是两件事。不要看到“商户号申请”就以为已经包含公众号年审,也不要把支付手续费写成固定不变的数字。

四、关联 AppID 并开通需要的支付产品

  1. 登录微信支付商户平台,进入产品或 AppID 账号管理区域。
  2. 添加公众号或小程序的 AppID,并核对双方主体是否一致。
  3. 回到公众平台或对应管理员微信完成关联确认。只在商户平台单方面添加,通常还不算最终完成。
  4. 按网站场景开通支付产品:电脑端展示二维码优先检查 Native 支付;微信内网页检查 JSAPI 支付;外部手机浏览器再判断是否需要 H5 支付。
  5. 等待平台同步后,再到插件后台测试下单。
支付方式 用户使用场景 网站表现
Native 支付 电脑浏览器 网站生成微信支付二维码,用户拿手机微信扫码付款。
JSAPI 支付 微信内打开的网页 页面唤起微信支付控件,需要正确的公众号 AppID、用户身份和授权目录。
H5 支付 手机外部浏览器 跳转到微信支付流程,准入和域名配置与 Native、JSAPI 不同。
关联公众号 AppID 并选择 Native JSAPI H5 支付产品示意图
图 4:AppID 需要完成管理员确认;支付产品则按电脑、微信内网页或外部手机浏览器选择。
主体或 AppID 不一致是常见卡点
公众号、商户号和网站经营主体不一致时,可能无法关联或无法开通对应能力。不要为了省事借用别人的公众号、商户号或主体资料。

五、设置 APIv3 密钥、证书和验签资料

支付插件要向微信支付发起下单请求,还要验证微信支付发来的回调,因此不仅要知道商户号,还必须配置签名和验签需要的密钥资料。

1. 设置 APIv3 密钥

  1. 进入商户平台的账户中心或 API 安全设置。
  2. 按平台要求设置 APIv3 密钥,并使用密码管理器离线保存。
  3. 不要把 APIv3 密钥理解为登录密码,也不要和旧版 APIv2 密钥混用。
  4. 如果插件字段只写“API 密钥”,先看插件文档确认它要的是 APIv2 还是 APIv3。
项目 APIv2 APIv3
常见插件字段 API 密钥、APIv2 密钥、旧版 Key APIv3 密钥、商户私钥、证书序列号、平台证书或微信支付公钥
主要用途 旧版接口的签名与校验 新版接口请求签名、通知解密与验签
能否互相代替 不能。插件要求哪一种就配置哪一种,不要用“试到能用”为办法。

2. 准备商户 API 证书或微信支付公钥资料

不同插件可能采用不同验签方案。常见字段包括商户 API 证书序列号、商户私钥文件 apiclient_key.pem、平台证书,或微信支付公钥与公钥 ID。必须完全按照插件声明的接口版本填写,不能拿一个 PEM 文件随便替代另一个。

微信支付 APIv3 密钥商户私钥证书序列号和公钥配置示意图
图 5:所有敏感值都应遮罩,商户私钥只能保存在服务器端。
资料 用途 安全要求
商户号 mchid 标识收款商户 必须和 AppID 关联关系、证书归属一致。
APIv3 密钥 回调解密和接口安全处理 只保存在服务器端,不得公开。
商户私钥 对接口请求进行签名 不得上传到媒体库、公开网盘或网页目录。
证书序列号 告诉微信支付当前使用哪张商户证书 必须来自与当前私钥配套的证书。
平台证书或微信支付公钥 验证微信支付返回的数据 根据插件版本选择,不能混用两种模式。
微信公众平台商户平台和 WordPress 后台参数流向图
图 6: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 完整地址。
WordPress 微信支付设置字段填写示意图
图 7:按字段顺序核对 AppID、商户号、APIv3 密钥、证书序列号、商户私钥和回调地址。
PEM 内容要完整
如果插件要求粘贴私钥文本,必须保留 -----BEGIN PRIVATE KEY-----、中间全部内容和 -----END PRIVATE KEY-----。多一个空格、少一行或复制错证书,都可能导致签名失败。

七、配置支付回调和服务器安全规则

用户扫码成功只代表微信端付款完成,网站订单能否自动变成“已支付”,主要取决于异步回调是否被网站正确接收和验证。

  • 回调地址必须使用正式域名和有效 HTTPS 证书。
  • 回调不能要求登录、不能弹验证码、不能被维护页面或安全验证拦截。
  • 不要把整个网站关闭防火墙。只针对插件明确的回调路径做最小范围放行。
  • 收到回调后必须校验签名、商户号、AppID、订单号、金额和币种,再更新订单状态。
  • 同一通知可能重复发送,程序必须做幂等处理,防止重复加余额、加积分、发货或开通会员。
  • 日志不能记录完整私钥、APIv3 密钥、AppSecret 或用户敏感支付数据。
微信支付 HTTPS 回调防火墙最小放行和验签幂等处理示意图
图 11:只放行准确回调路径;服务器仍要验签、核对商户和金额,并用幂等规则保证权益只发放一次。

CDN、WAF 和安全插件具体怎么设置

  1. 先从插件后台复制完整回调地址,记录准确路径,不要自己猜一个地址。
  2. 保持全站防火墙开启,只对这个准确路径取消登录验证、验证码、人机挑战和 JavaScript 挑战。
  3. 对回调路径关闭页面缓存、静态缓存和错误页替换,避免平台收到缓存内容而不是真实处理结果。
  4. 不要限制回调只能由浏览器访问,也不要强制跳转到登录页、首页或移动端页面。
  5. 放行后用插件测试功能或真实小额订单验证。只用浏览器打开看到页面,不代表 POST 回调一定能成功。
不要只看付款后的页面跳转
同步跳转页面可以被用户关闭,也可能被伪造。订单是否真正支付,应以服务器验证通过的异步通知或主动查单结果为准。

八、用真实小额订单完成上线验收

  1. 确认公众号认证、AppID 关联、支付产品、商户号和接口凭证都处于可用状态。
  2. 在网站创建一笔平台允许的真实小额订单,先测试电脑端 Native 扫码支付。
  3. 如果启用了 JSAPI 或 H5,再分别使用微信内浏览器和手机外部浏览器测试。
  4. 付款后检查 WordPress 订单是否自动变为已支付,会员、积分、余额或下载权限是否只发放一次。
  5. 在微信支付商户平台核对金额、商户订单号、微信支付订单号和付款时间。
  6. 再测试取消支付、支付超时、重复扫码、刷新支付页和重复通知。
微信支付回调验签订单更新和幂等处理流程图
图 8:只有验签和金额核对通过后才能更新订单;重复回调不能重复发放权益。
上线前检查清单

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

九、常见问题怎么排查

微信支付 AppID 签名证书商户状态和回调错误排查对照表
图 12:先查平台状态,再查参数对应关系,然后确认回调可达和日志错误,最后重新做一笔小额测试。

1. 提示 AppID 与商户号没有关联

检查商户平台是否已经添加该 AppID,并在公众号或对应管理员侧完成确认;再核对双方主体和正式环境是否一致。刚完成关联时,也可能需要等待后台同步。

2. 提示签名错误或证书序列号错误

确认商户私钥和证书序列号是否来自同一张商户 API 证书;检查插件使用 APIv2 还是 APIv3;不要把平台证书、商户证书和微信支付公钥互相替换。

3. 能生成二维码,但扫码后提示当前商户不可用

检查 Native 支付产品是否已开通、商户号是否受限、经营类目是否符合当前交易内容,并核对网站是否误用了沙箱、测试或其他主体的配置。

4. 用户付款成功,网站订单仍未支付

优先检查回调地址 HTTP 状态码、HTTPS 证书、CDN/WAF/安全插件拦截、APIv3 解密和验签日志。再核对金额、订单号和商户号校验是否通过。

5. 电脑扫码正常,微信内网页不能支付

Native 和 JSAPI 是不同支付产品。检查是否开通 JSAPI、是否配置支付授权目录、用户身份是否通过公众号网页授权取得,以及插件是否真正支持该场景。

6. 换了插件以后原参数全部报错

先看新插件使用的平台证书模式还是微信支付公钥模式、使用 APIv2 还是 APIv3。不要把旧插件字段直接原样复制到新插件。必要时在测试环境重新整理一套配置映射再上线。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容