小程序接入微信支付集成指南
在 CloudBase 控制台「集成中心」创建微信支付集成后,平台会自动为你生成一个 HTTP 云函数,封装好下单、查单、退款 、回调等全部能力。本指南介绍如何在小程序端调用该云函数,完成从下单到回调的完整支付闭环。
关于函数名的约定:集成中心生成的云函数名形如
<集成名>-<随机串>(例如miniapp-wxpay-rwmx67sc)。为方便讲解,本文统一称其为pay-common——你在自己的代码中替换为实际函数名即可。
整体调用链路:
- 正向请求:小程序 →
wx.cloud.callHTTPFunction(平台自动鉴权 + 注入 openid)→pay-commonHTTP 云函数 → 微信支付 API - 异步回调:微信支付 → 集成中心(验签 + 解密)→
pay-common→ 业务侧
架构总览
整体分为正向下单与异步回调两条链路:
职责分工:
| 角色 | 职责 |
|---|---|
| 小程序 | 通过 wx.cloud.callHTTPFunction 调用 pay-common,平台自动注入 openid,无需登录、无需 Token |
| pay-common 云函数 | 从 x-wx-openid header 获取用户身份;处理下单、查单、退款等主动请求;接收并处理回调 |
| 微信支付 API | 支付业务实际执行方 |
| 集成中心 | 统一托管凭证;接收回调后完成验签与解密,并以明文转发至云函数 |
前置条件
| 项 | 要求 |
|---|---|
| 小程序 | 已通过微信认证,个人号小程序不支持开通支付 |
| 微信支付商户号 | 已申请并在商户平台完成与上述小程序的绑定 |
| 商户超管权限 | 用于下载 API 证书、设置 APIv3 密钥 |
| 小程序基础库版本 | ≥ 3.15.2(wx.cloud.callHTTPFunction API 的前提条件) |
| Node.js 18+ / CloudBase CLI | 本地开发与调试使用 |
| 微信开发者工具 | 最新稳定版 |
第一步 · 准备商户凭证
登录微信支付商户平台,以超级管理员身份按以下三节取值。获得的所有值将在第二步统一填入集成中心表单。
1.1 APIv3 密钥
路径:账户中心 → API 安全 → 设置 APIv3 密钥。
如首次使用,点击「设置」,自定义 32 位字母/数字组合。该密钥仅在设置时显示一次,需妥善保存。
APIv3 密钥用于回调的 AES-GCM 解密及部分 V3 API 响应的验签。如未设置,微信服务器将直接拒绝下发任何回调通知,商户平台「交易中心 → 通知查询」将显示"通知发送失败"。
1.2 商户 API 证书
路径:账户中心 → API 安全 → API 证书 → 申请/下载。
下载并解压后,需保留:
apiclient_key.pem:商户 API 私钥,用于下单请求签名- 40 位十六进制证书序列号(页面上展示),形如
36048761817F82958048330A6301E922AB28A04D
apiclient_cert.p12 与 apiclient_cert.pem 本指南不使用。
1.3 微信支付公钥
路径:账户中心 → API 安全 → 微信支付公钥管理 → 查看/下载公钥。
需保留:
wxp_pub.pem:微信支付公钥文件- 公钥 ID(页面上展示),形如
PUB_KEY_ID_0114...
公钥与平台证书的区别:微信支付 V3 验签历史上存在两种方案——「微信支付公钥」(一次下载,长期有效,推荐)与「微信支付平台证书」(X.509 证书,会过期,需调接口轮换)。如在集成中心表单中填写了微信支付公钥,pay-common 则用公钥方案;否则将按平台证书方案处理。
与商户 API 证书的区别:微信支付公钥用于验证微信下发给商户的响应与回调(代表微信侧身份);商户 API 证书则用于对商户发起的请求进行签名(代表商户侧身份)。两者作用相反,请勿混淆。