
整体情况
微信支付接入,配置工作比写代码多。
代码部分让 Claude Code 写,半小时就搞定了。但前期的服务认证、参数配置、平台绑定,前前后后花了两天。主要是涉及两个平台(公众平台 + 商户平台),要配置的东西很多,还要互相关联。
前置条件
接入微信支付需要:
-
企业营业执照(个人无法申请)
-
服务号(订阅号不支持微信支付)
-
已备案的域名
我们团队有现成的公司主体,域名 fyyd.net 之前也备案过,所以这块直接满足。
关于服务号,需要完成认证才能使用微信支付功能。我们之前的服务号认证刚好过期了,重新认证了一下,费用是 300 元/年。认证流程不复杂,按照指引提交企业资料,一般几个工作日就能通过。

两个平台,七个参数
微信支付涉及两个平台:
| 平台 | 用途 | 地址 |
|---|---|---|
| 微信公众平台 | 获取 AppID、用户授权 | |
| 微信支付商户平台 | 收款、资金结算 |
最终需要拿到这些参数:
公众号的
WECHAT_APP_ID=wx1234567890abcdef
WECHAT_APP_SECRET=你的appsecret
商户平台的
WECHAT_MCH_ID=1234567890
WECHAT_API_V3_KEY=32位密钥
WECHAT_SERIAL_NO=证书序列号
WECHAT_PRIVATE_KEY=私钥内容
网站的
WECHAT_PAY_NOTIFY_URL=https://你的域名/api/pay/notify
下面按顺序说怎么拿到这些参数。
公众平台配置
登录 mp.weixin.qq.com,用管理员微信扫码。
获取 AppID
设置与开发 → 开发接口管理 → 基本配置,直接复制 AppID。
获取 AppSecret
同一个页面,点「重置」获取 AppSecret,首次需要先启用。
注意:AppSecret 只显示一次,复制后记得保存好。
配置服务器域名
在账号设置 - 功能设置里配置两个域名:
网页授权域名:用于获取用户 openid
JS接口安全域名:用于调起微信支付
都填你的域名,比如我这里的 event.fyyd.net,不需要加 https。
配置时需要下载一个验证文件放到网站根目录。Vercel 部署的话,放到 public 文件夹下就行。如果不确定放在哪里,也可以跟像我一样让 CC 操作(Claude code)。
商户平台配置
登录 pay.weixin.qq.com,用管理员微信扫码,配置的东西比较多。
获取商户号
账户中心 → 商户信息,复制 10 位数字的微信支付商户号。
设置 APIv3 密钥
账户中心 → API安全 → APIv3密钥
自己设置一个 32位 的密钥,建议用密码生成器生成。
注意:是 APIv3 密钥,不是 API 密钥,这是两个不同的东西。
扫码验证后保存。
申请 API 证书
-
账户中心 → API安全 → API证书 → 申请证书
-
下载「微信支付商户平台证书工具」

我在这边耽误了一些时间,遇到一个踩坑的点。下载的证书工具双击打开没有任何反应。求助了 CC 才发现是版本不兼容,还是它帮我解决了。
-
用工具生成证书请求,提交审核,这一步按照提示操作就行。总之就是商户平台和证书工具两边互相验证。

-
审核通过后下载证书文件
下载后会得到三个文件,需要的是 apiclient_key.pem(私钥)。
├── apiclient_cert.p12 # 证书文件(不常用)
├── apiclient_cert.pem # 证书文件(公钥)
├── apiclient_key.pem # 私钥文件 ⭐ 重要!
获取证书序列号
API证书页面,证书列表里有个 40 位的「证书序列号」,复制保存。
关联公众号和商户号
这一步让公众号和商户号绑定,才能实现 JSAPI 支付。
商户平台:产品中心 → AppID账号管理 → 关联AppID
输入公众号的 AppID,提交。

公众平台:微信支付 → 商户号管理,找到申请记录,点「确认关联」。
两边都操作完才算关联成功。


开通支付产品
支付产品需要单独申请开通,不是默认就有的。
商户平台 → 产品中心 → 产品大全,找到需要的支付方式,点进去申请。Native 和 JSAPI 基本很快就通过,H5 支付需要提供备案截图,审核时间长一些。
| 支付方式 | 场景 | 审核时间 |
|---|---|---|
| Native 支付 | PC 端扫码支付 | 秒过 |
| JSAPI 支付 | 微信内 H5 支付 | 秒过 |
| H5 支付 | 手机浏览器支付 | 1-3 天 |
Native 支付(PC扫码支付)
JSAPI支付(微信内支付)
H5 支付(手机浏览器支付)
用户在手机浏览器(非微信)中访问网页,跳转到微信完成支付。
需要填写申请信息:H5支付域名、网站备案号、业务场景说明等。
ICP备案在工信部备案查询网站查询:https://beian.miit.gov.cn/#/Integrated/recordQuery

提供一些网站截图。
配置支付目录
JSAPI 支付需要配置支付授权目录:
产品中心 → 开发配置 → JSAPI支付授权目录
添加:https://event.fyyd.net/(注意结尾要有 /)
配置后有 10 分钟左右的生效延迟。
代码实现
配置完成后,代码部分直接让 Claude Code 来写。
告诉它:
我要接入微信支付,支持 Native 扫码支付和 JSAPI 微信内支付。环境变量已经配置好了,帮我实现支付接口。
支付流程
Native 支付(PC 端):
-
调用下单接口,获取二维码链接
-
前端生成二维码展示
-
用户扫码支付
-
前端轮询支付状态
JSAPI 支付(微信内):
-
获取用户 openid(需要授权)
-
调用下单接口
-
调起微信支付界面
-
支付完成
环境变量配置注意
在 Vercel 配置环境变量时,私钥是多行的,直接在网页上粘贴可能会有换行符问题。
可以用命令行添加:
printf '%s' "$(cat apiclient_key.pem)" | vercel env add WECHAT_PRIVATE_KEY production
或者在代码里处理换行符:
const privateKey = process.env.WECHAT_PRIVATE_KEY?.replace(/\\n/g, '\n');
或者直接在vercel后台配置。
另外检查一下 APIv3 密钥长度是不是 32 位,网页粘贴时可能会多一个换行符。
回调处理
支付完成后,微信会调用你配置的回调地址通知支付结果。
几个要点:
-
回调地址必须是 HTTPS
-
必须能公网访问
-
回调数据是加密的,用 APIv3 密钥 + AES-GCM 解密
-
要返回正确的响应格式,否则微信会重复调用
测试
配置完成后,用小金额(比如 0.01 元)测试一下完整流程:
-
创建测试订单
-
扫码或微信内支付
-
确认支付状态正确更新
-
确认回调正确处理

退款
退款直接在商户平台手动操作就行:
商户平台 → 交易中心 → 退款管理 → 搜索订单号 → 退款
小规模活动手动退款够用。如果退款量大,也可以把退款功能接到自己网站后台,这样就不用每次都跑到商户平台操作了。
微信支付接入主要就是要有服务号、商户号以及备案过的域名,把两个平台的配置都做了,参数拿到。按照清单一项项做,都能顺利跑通。
相关链接:
-
微信公众平台:https://mp.weixin.qq.com
-
微信支付商户平台:https://pay.weixin.qq.com
-
微信支付官方文档:
💡 AI 工具的爆发,让普通人也能快速做出产品。
但如何做?如何变现?如何真正走向海外市场?
👉 想了解更多 AI 编程 & 出海实战信息
扫码或微信搜索 257735,发送暗号 【美金】
了解详情,加入实战社群。
微信扫一扫,了解更多详情
🚀 我们的出海作品展示平台上线啦!
欢迎访问 Showcase 平台,
这里汇聚了学员的出海实战作品,方便大家获得反馈、积累曝光机会。
我们还会定期举办创作活动与奖励计划,欢迎来逛逛!
🔗 更多教程请访问 ipengtao.com
文章评论