彭涛

  • 首页
  • AI编程出海
  • 千里会
  • 博客
    • Github 精选项目
    • Python 资料领取
    • 个人IP
  • 关于我
聚焦 AI 编程与出海实战,分享实用方法与创业经验,还有很多副业玩法。

首页 » AI出海 » 微信支付接入实战:JSAPI + Native 从配置到跑通,全流程记录

微信支付接入实战:JSAPI + Native 从配置到跑通,全流程记录

2025年12月5日 524点热度 0人点赞 0条评论

上一篇分享了用 AI 编程几小时做完一个活动报名系统,当时说到下一步要接入微信支付。这几天把支付跑通了,顺便把整个接入流程记录下来。AI 编程实践:几小时做完一个活动报名系统,全流程复盘

简约科技配色流程图

img

整体情况

微信支付接入,配置工作比写代码多。

代码部分让 Claude Code 写,半小时就搞定了。但前期的服务认证、参数配置、平台绑定,前前后后花了两天。主要是涉及两个平台(公众平台 + 商户平台),要配置的东西很多,还要互相关联。

前置条件

接入微信支付需要:

  • 企业营业执照(个人无法申请)

  • 服务号(订阅号不支持微信支付)

  • 已备案的域名

我们团队有现成的公司主体,域名 fyyd.net 之前也备案过,所以这块直接满足。

关于服务号,需要完成认证才能使用微信支付功能。我们之前的服务号认证刚好过期了,重新认证了一下,费用是 300 元/年。认证流程不复杂,按照指引提交企业资料,一般几个工作日就能通过。

image-20251201171809679

两个平台,七个参数

微信支付涉及两个平台:

平台 用途 地址
微信公众平台 获取 AppID、用户授权 mp.weixin.qq.com
微信支付商户平台 收款、资金结算 pay.weixin.qq.com

最终需要拿到这些参数:

公众号的

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 只显示一次,复制后记得保存好。

img

配置服务器域名

在账号设置 - 功能设置里配置两个域名:

img

网页授权域名:用于获取用户 openid

img

JS接口安全域名:用于调起微信支付

img

都填你的域名,比如我这里的 event.fyyd.net,不需要加 https。

配置时需要下载一个验证文件放到网站根目录。Vercel 部署的话,放到 public 文件夹下就行。如果不确定放在哪里,也可以跟像我一样让 CC 操作(Claude code)。

img

商户平台配置

登录 pay.weixin.qq.com,用管理员微信扫码,配置的东西比较多。

获取商户号

账户中心 → 商户信息,复制 10 位数字的微信支付商户号。

img

设置 APIv3 密钥

账户中心 → API安全 → APIv3密钥

自己设置一个 32位 的密钥,建议用密码生成器生成。

注意:是 APIv3 密钥,不是 API 密钥,这是两个不同的东西。

img

扫码验证后保存。

img

申请 API 证书

  1. 账户中心 → API安全 → API证书 → 申请证书

img

img

  1. 下载「微信支付商户平台证书工具」

image-20251201172044522

我在这边耽误了一些时间,遇到一个踩坑的点。下载的证书工具双击打开没有任何反应。求助了 CC 才发现是版本不兼容,还是它帮我解决了。

img

  1. 用工具生成证书请求,提交审核,这一步按照提示操作就行。总之就是商户平台和证书工具两边互相验证。

img

img

image-20251201172251699

img

img

  1. 审核通过后下载证书文件

img

下载后会得到三个文件,需要的是 apiclient_key.pem(私钥)。

├── apiclient_cert.p12      # 证书文件(不常用)
├── apiclient_cert.pem      # 证书文件(公钥)
├── apiclient_key.pem       # 私钥文件 ⭐ 重要!

img

获取证书序列号

API证书页面,证书列表里有个 40 位的「证书序列号」,复制保存。

img

关联公众号和商户号

这一步让公众号和商户号绑定,才能实现 JSAPI 支付。

商户平台:产品中心 → AppID账号管理 → 关联AppID

img

输入公众号的 AppID,提交。

image-20251201172427985

img

公众平台:微信支付 → 商户号管理,找到申请记录,点「确认关联」。

两边都操作完才算关联成功。

image-20251201172533063

image-20251201172700934

开通支付产品

支付产品需要单独申请开通,不是默认就有的。

商户平台 → 产品中心 → 产品大全,找到需要的支付方式,点进去申请。Native 和 JSAPI 基本很快就通过,H5 支付需要提供备案截图,审核时间长一些。

支付方式 场景 审核时间
Native 支付 PC 端扫码支付 秒过
JSAPI 支付 微信内 H5 支付 秒过
H5 支付 手机浏览器支付 1-3 天

Native 支付(PC扫码支付)

img

JSAPI支付(微信内支付)

img

img

H5 支付(手机浏览器支付)

用户在手机浏览器(非微信)中访问网页,跳转到微信完成支付。

img

需要填写申请信息:H5支付域名、网站备案号、业务场景说明等。

img

ICP备案在工信部备案查询网站查询:https://beian.miit.gov.cn/#/Integrated/recordQuery

image-20251201172823540

提供一些网站截图。

img

img

配置支付目录

JSAPI 支付需要配置支付授权目录:

产品中心 → 开发配置 → JSAPI支付授权目录

添加:https://event.fyyd.net/(注意结尾要有 /)

img

配置后有 10 分钟左右的生效延迟。

代码实现

配置完成后,代码部分直接让 Claude Code 来写。

告诉它:

我要接入微信支付,支持 Native 扫码支付和 JSAPI 微信内支付。环境变量已经配置好了,帮我实现支付接口。

支付流程

Native 支付(PC 端):

  1. 调用下单接口,获取二维码链接

  2. 前端生成二维码展示

  3. 用户扫码支付

  4. 前端轮询支付状态

JSAPI 支付(微信内):

  1. 获取用户 openid(需要授权)

  2. 调用下单接口

  3. 调起微信支付界面

  4. 支付完成

环境变量配置注意

img

在 Vercel 配置环境变量时,私钥是多行的,直接在网页上粘贴可能会有换行符问题。

img

可以用命令行添加:

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 元)测试一下完整流程:

  1. 创建测试订单

  2. 扫码或微信内支付

  3. 确认支付状态正确更新

  4. 确认回调正确处理

image-20251201173012932

退款

退款直接在商户平台手动操作就行:

商户平台 → 交易中心 → 退款管理 → 搜索订单号 → 退款

小规模活动手动退款够用。如果退款量大,也可以把退款功能接到自己网站后台,这样就不用每次都跑到商户平台操作了。


微信支付接入主要就是要有服务号、商户号以及备案过的域名,把两个平台的配置都做了,参数拿到。按照清单一项项做,都能顺利跑通。

相关链接:

  • 微信公众平台:https://mp.weixin.qq.com

  • 微信支付商户平台:https://pay.weixin.qq.com

  • 微信支付官方文档:https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml

💡 AI 工具的爆发,让普通人也能快速做出产品。

但如何做?如何变现?如何真正走向海外市场?
👉 想了解更多 AI 编程 & 出海实战信息

扫码或微信搜索 257735,发送暗号 【美金】
了解详情,加入实战社群。

微信二维码

微信扫一扫,了解更多详情


🚀 我们的出海作品展示平台上线啦!

欢迎访问 Showcase 平台, 这里汇聚了学员的出海实战作品,方便大家获得反馈、积累曝光机会。
我们还会定期举办创作活动与奖励计划,欢迎来逛逛!


🔗 更多教程请访问 ipengtao.com
标签: AI出海
最后更新:2025年12月5日

彭涛

创业者 & Python 工程师 &「AI 出海」实践者。 关注:AI 编程出海 / 爬虫 & RPA / 增长与变现。 📮vx:257735(欢迎交流)

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

文章目录
  • 整体情况
  • 前置条件
  • 两个平台,七个参数
  • 公众号的
  • 商户平台的
  • 网站的
    • 公众平台配置
      • 获取 AppID
      • 获取 AppSecret
      • 配置服务器域名
    • 商户平台配置
      • 获取商户号
      • 设置 APIv3 密钥
      • 申请 API 证书
      • 获取证书序列号
    • 关联公众号和商户号
    • 开通支付产品
      • Native 支付(PC扫码支付)
      • JSAPI支付(微信内支付)
      • H5 支付(手机浏览器支付)
      • 配置支付目录
    • 代码实现
      • 支付流程
      • 环境变量配置注意
    • 回调处理
    • 测试
    • 退款
分类
  • AI出海
  • AI工具
  • Github 精选项目
  • Python 第三方库
  • Python 资料领取
  • 个人IP
  • 实战案例
  • 工具推荐
  • 教程与指南
  • 编程工具
最近评论

COPYRIGHT © 2025 彭涛. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14006373号