更新记录
1.0.0(2026-01-14)
1.0.0
- 支持支付宝小程序支付:统一下单(createOrder)
- 支持订单查询(queryOrder)
- 支持退款(refund)
- 支持关闭订单(closeOrder)
- 提供支付回调云函数:回调验签与支付结果处理(ziyu-alipay-notify)
- 提供订单状态回写示例:可按配置写回 uniCloud 数据库订单集合
- 提供完整接入文档与配置指引(AppID/密钥/notifyUrl/URL化部署)
平台兼容性
云端兼容性
| 阿里云 | 腾讯云 | 支付宝云 |
|---|---|---|
| √ | × | × |
云函数类插件通用教程
使用云函数类插件的前提是:使用HBuilderX 2.9+
支付宝支付模块(ziyu-alipay-pay)
适用于 uniCloud + 支付宝小程序 的支付场景,提供统一下单、订单查询、退款、关闭订单、异步回调等能力。
所有需要用户自定义的内容都集中在两个 config.js当中。
所有需要填写的appid、公钥、私钥等内容请自行参考说明到支付宝开放平台进行申请。
调用支付云函数前必须先获取用户的userId 或 openId,否则无法创建订单!
目录结构
uni_modules/
└─ ziyu-alipay-pay/
├─ README.md
├─ package.json
└─ uniCloud/
└─ cloudfunctions/
├─ ziyu-alipay-pay/ # 支付主云函数(含 config.js、index.js、package.json)
└─ ziyu-alipay-notify/ # 回调云函数(含 config.js、index.js)
安装方式
- 下载本插件到自己的项目。
- 导入后,插件会自动出现在项目的
uni_modules/ziyu-alipay-pay/目录下。 - 展开
uni_modules/ziyu-alipay-pay/uniCloud/cloudfunctions/,即可看到两个云函数。
配置步骤
1. 支付主云函数 ziyu-alipay-pay/config.js
| 字段 | 必填 | 说明 |
|---|---|---|
appId |
是 | 支付宝小程序 AppID,支付宝开放平台获取。 |
privateKey |
是 | 应用私钥(PKCS8)。若你手上是 PEM 文件,需去掉 BEGIN/END 标记,仅保留中间内容;若使用支付宝开放平台生成的纯文本,直接粘贴即可。 |
alipayPublicKey |
是 | 支付宝公钥。若复制自 PEM 文件请去掉 BEGIN/END 标记;若是支付宝开放平台提供的纯文本,同样可直接使用。 |
notifyUrl |
是 | ziyu-alipay-notify URL 化后的 HTTPS 地址。 |
buyerIdType |
是 | 用户标识类型,'userId' 或 'openId',详见下方说明。 |
keyType |
否 | 默认 PKCS8,如使用 PKCS1 私钥可改。 |
gateway |
否 | 默认 https://openapi.alipay.com/gateway.do。沙箱可改为 https://openapi.alipaydev.com/gateway.do。 |
signType |
否 | 默认 RSA2,如确有需要可调。 |
pid |
否 | 商户 PID(2088 开头)。普通商户模式下 AppID 已与 PID 绑定,可不填;如为服务商/代运营模式,或需要在回调、对账中显式校验商户主体,请填写。 |
不填写必填项会导致 SDK 初始化失败或无法调用支付宝接口;可选项不改则使用默认值。
用户标识类型说明
你的前端能获取到哪种类型的id,就在这里配置什么类型,不同类型的id区别如下:
| 类型 | 格式 | 适用场景 |
|---|---|---|
userId |
2088开头的16位数字 | 2021年9月前创建的老应用,或已开启"UID兼容模式"的应用 |
openId |
字母数字组成的长字符串 | 2021年9月后创建的新应用(默认只返回 openId) |
2. 回调云函数 ziyu-alipay-notify/config.js
| 字段 | 必填 | 说明 |
|---|---|---|
alipayPublicKey |
是 | 支付宝公钥,用于回调验签。建议填写纯文本内容(不带 BEGIN/END)。 |
callbackFunction |
否 | 支付成功后调用的业务云函数名称。留空则仅验签,不做任何业务处理。 |
signType |
否 | 签名类型,默认 RSA2。 |
本模块采用纯支付职责设计,回调云函数只负责验签,不直接操作数据库。订单状态更新等业务逻辑由开发者在自己的业务云函数中实现。
业务回调机制
配置 callbackFunction 后,支付成功时会自动调用你的业务云函数,传入以下参数:
{
action: 'paymentSuccess',
data: {
tradeNo: '支付宝交易号',
outTradeNo: '商户订单号',
totalAmount: '支付金额',
buyerId: '买家支付宝用户ID',
gmtPayment: '支付时间',
tradeStatus: '交易状态'
}
}
比如你有一个用于更新订单数据的云函数:'my-order-handler',如果你需要在支付出结果之后更新订单数据到你自己的数据库,就可以在 ziyu-alipay-notify/config.js 中配置:
callbackFunction: 'my-order-handler'
云函数部署与 URL 化
- 部署
- 在 HBuilderX 中分别右键
ziyu-alipay-pay、ziyu-alipay-notify→ “上传部署”。
- 在 HBuilderX 中分别右键
- URL 化
- 打开 uniCloud 控制台 → 云函数 →
ziyu-alipay-notify→ 详情 → 开启 云函数 URL 化。 - 设置路径(示例
/ziyu-alipay-notify),复制完整 HTTPS 地址,回填到ziyu-alipay-pay/config.js的notifyUrl字段。 - Url化需要有自己的域名,没有域名可以用默认url用于临时测试,默认域名的格式是类似于:'https://你的space-id/http/ziyu-alipay-notify'
- 打开 uniCloud 控制台 → 云函数 →
后续操作(查询/退款/关闭)
通过调用 action: 'queryOrder' | 'refund' | 'closeOrder' 完成后续操作。
API 说明(云函数 action)
| action | 功能 | 入参关键字段 |
|---|---|---|
createOrder |
创建订单 | buyerId、totalAmount、subject、orderId?、body? |
queryOrder |
查询订单 | tradeNo? / outTradeNo?(二选一) |
refund |
申请退款 | tradeNo? / outTradeNo?、refundAmount、refundReason? |
closeOrder |
关闭订单 | tradeNo? / outTradeNo? |
返回结构统一为 { code, message, data },其中 code === 0 表示成功。
获取支付宝配置指引
- 登录 支付宝开放平台 → 指定小程序的控制台 → 开发设置。
- 获取 AppID(页面左上角小程序名称下方的数字,可以直接复制)、生成并下载应用私钥(接口加签方式(密钥/证书)这一项)。
- 在“接口加签方式”中查看 支付宝公钥。
- 如需 PID,到 支付宝商家中心 查询。
版本与依赖
- 插件版本:见
package.json。 - 依赖:
alipay-sdk@^3.6.1(已在ziyu-alipay-pay云函数package.json声明)。

收藏人数:
购买源码授权版(
导入插件并试用
赞赏(0)
下载 0
赞赏 0
下载 34222
赞赏 155
赞赏
京公网安备:11010802035340号