发布于2026-08-17 阅读(0)
扫一扫,手机访问
云支付系统要真正跑通,核心就四步,顺序也不能乱:先把商户资质认证做好,开通微信支付并勾选对应的服务类目,同时在云开发控制台打开微信支付开关;接着完成商户号绑定,通过扫码或网页授权服务商ID 1800008281,并把JSAPI支付和退款API权限一并开通;然后把APIv3密钥、证书以及环境变量配置到位;最后再部署unifiedOrder云函数来完成统一下单,同时编写pay/notify函数,专门处理支付结果回调。

云支付系统对接需要完成商户资质认证、密钥配置、云函数部署与回调处理四个核心环节,缺一不可。没有开通微信支付且未绑定商户号的小程序无法调用云调用支付能力,直接调用会返回errCode: 47001错误。
登录云开发控制台 → 进入「设置」→「全局设置」→ 找到「微信支付」开关并启用。这一步必须在小程序管理后台已开通微信支付功能的前提下操作,否则开关为灰色不可点击状态。
【开通前必须确认】小程序已提交微信支付类目审核,并在「小程序管理后台-基本设置-服务类目」中勾选“电商”“生活服务”等对应类目,否则云支付开关无法激活。
绑定商户号时,需输入微信支付平台分配的mchid(10位纯数字),输入后点击「添加」,系统会自动生成待授权的服务商账号ID(固定为1800008281)。
方法一:超级管理员扫码授权
打开微信「微信支付商家助手」小程序 → 点击「服务商授权」→ 扫码 → 在授权列表中找到「1800008281 小程序云开发」→ 点击确认。注意:首次加载可能默认显示其他服务商,需手动下拉选择该ID,否则授权失败。
方法二:网页端授权
登录微信支付商户平台 → 进入「账户中心」→「API安全」→「服务商授权」→ 添加服务商 → 输入服务商ID 1800008281 → 提交 → 等待超级管理员在手机端确认。
授权完成后,必须分别进入「我的授权产品」→ 开启「JSAPI支付」和「退款API」权限,缺少任一权限都会导致统一下单或退款接口返回errCode: 48002。
第一步,先把 APIv3 密钥和证书准备好。进入微信支付商户平台,依次打开「账户中心」→「API安全」,下载 API 证书,拿到apiclient_cert.pem和apiclient_key.pem这两个文件;接着,用 OpenSSL 把私钥转换成无密码的 PKCS#8 格式,命令如下:openssl pkcs8 -topk8 -inform PEM -outform PEM -in apiclient_key.pem -out apiclient_key_plain.pem -nocrypt。
第二步:提取证书序列号
执行命令:openssl x509 -in apiclient_cert.pem -noout -serial | cut -d= -f2 | tr '[:lower:]' '[:upper:]' | tr -d ':',输出结果即为serial_no,务必复制完整(通常为32位大写十六进制字符串)。
第三步:设置环境变量
在云函数根目录新建.env文件,填入以下内容(注意不要有多余空格):WECHAT_APPID=wx1234567890abcdefWECHAT_MCHID=1234567890WECHAT_API_V3_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxWECHAT_SERIAL_NO=ABCDEF01234567890123456789012345WECHAT_NOTIFY_URL=https://xxx-yyy-zzz.cloudbase.net/pay/notify
【关键提醒】.env文件必须加入.gitignore,所有敏感字段禁止提交至代码仓库;CloudBase控制台「环境变量」面板中也要同步填写,优先级高于本地.env。
创建名为unifiedOrder的云函数,安装wx-server-sdk@2.0.2+依赖,在index.js中调用cloud.pay.unifiedOrder接口,传入body、outTradeNo、totalFee、spbillCreateIp、notifyUrl、tradeType(固定填JSAPI)、openid七项必填参数。
其中notifyUrl必须与上一步配置的WECHAT_NOTIFY_URL完全一致,包括协议、域名、路径,且该路径指向一个HTTP触发的云函数(如pay/notify);若不一致,微信服务器将拒绝发送回调,订单状态永远停留在“未支付”。
云函数返回值中提取payment对象,直接透传给小程序端wx.requestPayment调用,无需二次加工。
新建HTTP触发云函数pay/notify,函数内调用cloud.pay.callback解析微信推送的加密通知体,校验签名有效性并提取result_code字段。
若result_code === 'SUCCESS',则更新数据库订单状态为「已支付」,并执行业务逻辑(如发券、发货);无论成功与否,函数末尾必须return { errcode: 0 },否则微信将在48小时内每15分钟重推一次回调,最多重复10次。
上一篇:盘搜搜官方网站地址
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9