商户号注册、产品开通和凭证都在微信侧完成。密钥只写进 后端密钥管理(Edge Function Secrets),不要发到聊天、前端或 Git。项目里生成的变量名可能与下表略有不同,以对话里给出的 Secrets 为准。
先选支付产品
三种产品接口不同,不要混用。小程序里不要当 H5 去开域名,也不要在 WebView 里直接调wx.requestPayment。
建议:先用免费 咨询 说清「手机 H5 / 小程序 JSAPI / 电脑扫码」,再执行接入,避免开错产品返工。
一、注册商户号
- 打开 pay.weixin.qq.com
- 点击右上角「成为商家」
- 选择企业或个体户,按指引上传营业执照、法人身份证、结算账户和联系人
- 提交后等待审核(通常 1–3 个工作日)
- 审核通过后,登录即可看到 商户号(10 位数字)
二、获取支付凭证
2.1 商户号
账户中心 → 商户信息 → 微信支付商户号。2.2 关联 AppID
产品中心 → AppID 账号管理 → 关联 AppID,并到对应后台确认授权。- JSAPI:必须关联 小程序 AppID,且与小程序登录用的 AppID 一致。
- H5:关联公众号或已开通 H5 的应用 AppID,以商户平台要求为准。
2.3 设置 APIv3 密钥
账户中心 → API 安全 → APIv3 密钥。设一个 正好 32 个字符 的字符串(按 UTF-8 计为 32 字节),确认后立刻保存,关闭页面后无法再查看。2.4 申请并下载商户 API 证书
账户中心 → API 安全 → 商户 API 证书 → 申请并下载cert.zip。解压后主要用:
apiclient_key.pem,整份复制(必须包含 BEGIN / END 两行和换行)。
2.5 证书序列号
在 API 安全的证书列表里复制「证书序列号」;或:serial= 后面的值。序列号必须与这份私钥匹配,否则请求会报 SIGN_ERROR。
2.6 微信支付平台公钥
API v3 校验微信的响应和支付回调时,还需要 平台公钥 和 公钥 ID(不是商户自己的apiclient_cert.pem)。
- 账户中心 → API 安全,找到微信支付公钥 / 平台证书相关入口(以商户平台当前名称为准)
- 下载或复制平台公钥 PEM,以及对应的公钥 ID
- 公钥同样保留完整头尾和换行
三、按场景开通产品
只开通你实际会用的产品。当前是小程序 JSAPI,就不必为了「文档写了 H5」去开 H5。3.1 H5 支付(手机浏览器)
产品中心 → H5 支付 → 申请开通,填写支付域名、网站名称和 ICP 备案号。域名必须与线上一致。3.2 JSAPI 支付(小程序)
产品中心申请 JSAPI 支付,并确认小程序 AppID 已与商户号双向绑定。顾客在小程序内付款走/v3/pay/transactions/jsapi,由原生页调用 wx.requestPayment。
3.3 Native 支付(电脑扫码)
产品中心开通 Native 支付(或商户平台上的扫码支付)。只开了 H5 时,电脑浏览器往往拉不起支付。四、配置到 superun
在 后端密钥管理(Edge Function Secrets) 中配置,以产品内入口为准。不要用前端环境变量。五、支付怎么走
无论哪种产品,前端支付成功、页面跳回都不算已支付。只认服务端:验签后的异步回调,或主动查单。同一笔订单可能收到多次通知,写入必须幂等,避免重复确认、重复发货或重复扣款。5.1 H5
- 前端请后端创建订单
- 后端调用 H5 下单接口,拿到
h5_url - 顾客跳转完成支付
- 微信回调 / 后端查单后,把订单标为已支付
5.2 JSAPI(小程序)
wx.requestPayment 的 success 只表示收银台走完,不要据此改订单状态。
5.3 对 AI 说的示例
配置好密钥后,在对话里写清产品和场景,例如:- 「网站在手机浏览器里用微信 H5 支付」
- 「小程序里用 JSAPI,
wx.login换 openid,原生页wx.requestPayment」 - 「电脑端用 Native 扫码支付」
六、支付后解锁内容
- 顾客完成支付
- 微信向
notify_url发结果;后端验签、核商户号 / 订单号 / 金额(整数分)后标记已支付 - 前端轮询或推送订单状态,已支付 才展示付费内容或开始后续任务
七、常见错误
SIGN_ERROR
SIGN_ERROR
商户证书序列号与私钥不匹配,或平台公钥 / 公钥 ID 不是当前生效的那一套。到 API 安全页核对后更新 Secrets 并重新部署。
NO_AUTH 产品未开通
NO_AUTH 产品未开通
按实际场景开通 H5、JSAPI 或 Native,不要用另一种产品的接口去补。
PARAM_ERROR 域名不符
PARAM_ERROR 域名不符
H5 场景:商户平台登记的支付域名与线上不一致。JSAPI 场景:检查 AppID 绑定,而不是去改 H5 域名。
小程序能登录但拉不起支付
小程序能登录但拉不起支付
支付 AppID、小程序登录 AppID、商户平台绑定的 AppID 必须是同一个;JSAPI 产品已开通;openid 在服务端换取。
电脑端无法支付
电脑端无法支付
商户号未开通 Native。开通后再说明需要 PC 扫码,让 AI 改接入方式。
前端显示成功但内容没解锁
前端显示成功但内容没解锁
客户端 success 不可靠。查 Edge Function 日志、商户平台交易单,以及回调是否验签成功、金额是否一致。
superun 支付(托管)
不想自己对接商户号时,用平台托管的微信 / 支付宝收款。

