简介
alipaydev 开发工具提供命令行方式进行开发,提高研发效率,提供小程序各种便捷工具。
支持命令行和SDK方式引入
全局安装
npm install alipay-dev -g
CLI命令
命令索引
可以通过 alipaydev -h
查看所有命令帮助,并且每个命令可通过增加 -h 参数查看明细说明
分类 | 说明 | 命令 |
---|
配置 | 工具初始化配置 | alipaydev config set |
| 展示工具配置信息 | alipaydev config list |
小程序 | 小程序列表 | alipaydev mini list |
| 小程序预览 | alipaydev mini preview |
| 小程序上传 | alipaydev mini upload |
| demo下载 | alipaydev mini demo |
云开发 | 云服务空间列表 | alipaydev cloud space list |
| 空间下的云函数列表 | alipaydev cloud function list |
| 启动本地云函数运行环境 | alipaydev cloud function dev |
| 上传云函数 | alipaydev cloud function deploy |
| 下载云函数 | alipaydev cloud function download |
| http触发器 | alipaydev cloud function http |
密钥 | 密钥生成 | alipaydev key create |
| 密钥匹配检测 | alipaydev key match |
| 密钥转换 | alipaydev key convert |
在线视频演示
支付宝服务群
工具初始化配置
操作流程:
- 运行
alipaydev key create -w
生成密钥(pkcs8 rsa2 格式) - 运行
alipaydev key upload
自动打开浏览器配置页或直接前往“工具密钥设置” 页面进行工具公钥和IP白名单(可选)设置。将第一步生成的“公钥”在此页面配置,设置完成后系统会为您分配一个工具ID(toolId) - 工具密钥设置页面配置完成后,运行配置命令,设置第二步系统分配的工具Id(toolId)
alipaydev config set -i 工具ID
参数 | 必填 | 说明 | 默认值 |
---|
-i, --tool-id | 是 | 工具id | 无 |
-k, --private-key | 否 | 工具私钥 | 无 |
--proxy | 否 | 代理地址 | 无 |
小程序相关
以下命令都支持普通小程序
和小程序插件
小程序预览
# 将 /Users/workspace/Demos/todos 目录下的小程序源码上传预览
alipaydev mini preview -i 20190666750666 -p /Users/workspace/Demos/todos
# 默认启动页为pages/index/index,参数q=v&id=33,小程序launch参数为name=demo&fromId=11
alipaydev mini preview -i 20190666750666 -p /Users/workspace/Demos/todos --page 'pages/index/index?q=v&id=33' --launch 'name=demo&fromId=11'
参数 | 必填 | 说明 | 默认值 |
---|
-p, --project | 是 | 项目目录 | 无 |
-i, --app-id | 是 | 小程序appId | 无 |
--page | 否 | 落地页面, 如:"pages/index/index?q=v&id=33" | 无 |
--launch | 否 | app.js的onLaunch中取得, 如: "name=demo&fromId=11" | 无 |
-f, --qrcode-format | 否 | 返回二维码文件的格式, 如: 'terminal','base64','image' | image |
-o, --qrcode-output | 否 | 二维码文件保存路径,如: '/docuemnt/demo.png' | 程序执行目录 |
小程序上传
# 上传到支付宝端
alipaydev mini upload -i 20190666750666 -p /Users/workspace/Demos
# 上传到高德端
alipaydev mini upload -i 20190666750666 -p /Users/workspace/Demos -c amap
参数 | 必填 | 说明 | 默认值 |
---|
-p, --project | 是 | 项目目录 | 无 |
-i, --app-id | 是 | 小程序appId | 无 |
-v, --version | 否 | 上传包版本 | 线上包版本自增0.0.1 |
-c, --client-type | 否 | 上传的终端。 支付宝: alipay; 高德: amap; UC: com.uc.app; 夸克: com.quark.browser; 阿里医院: com.alibaba.health; 口碑独立客户端: com.koubei.mobile.KoubeiClient; | alipay |
-e, --experience | 否 | 上传成功后,自动设置为体验版本, 该功能只针对小程序主账号生效 | false |
demo下载
alipaydev mini demo
云开发相关
查看云服务空间列表
# 查看云服务空间列表,在终端显示云服务空间的名称以及云服务空间的 ID
alipaydev cloud space list -i 2021001107626425
查看云函数列表
# 查询服务空间下的云函数列表
alipaydev cloud function list -i 2021001107626425 -s 123456
参数 | 必填 | 说明 | 默认值 |
---|
-i, --app-id | 是 | 小程序appId | 无 |
-s, --space-id | 是 | 云服务空间ID | 无 |
启动本地调试服务
alipaydev cloud function dev -i 2021001107626425 -p /server/functions --inspect
参数 | 必填 | 说明 | 默认值 |
---|
-i, --app-id | 是 | 小程序appId | 无 |
-p, --project | 是 | 云函数根目录 | 无 |
--port | 否 | 服务启动端口 | 3636 |
--inspect | 否 | 启动chrome调试器 | false |
上传云函数
# 上传云函数根目录下名为 getSum 的云函数
alipaydev cloud function deploy -i 2021001107626425 -s 123456 -n getSum -p /server/functions
# 上传云函数根目录下名为 aaa bbb的云函数
alipaydev cloud function deploy -i 2021001107626425 -s 123456 -n aaa bbb -p /server/functions
参数 | 必填 | 说明 | 默认值 |
---|
-i, --app-id | 是 | 小程序appId | 无 |
-s, --space-id | 是 | 云服务空间ID | 无 |
-n, --name | 是 | 云函数名称,多个云函数则以空格分隔 | 无 |
-p, --project | 是 | 云函数本地文件地址 | 无 |
下载云函数
# 下载云函数 main到 /server/functions目录下面
alipaydev cloud function download -i 2021001107626425 -s 123456 -n main --path /server/functions
参数 | 必填 | 说明 | 默认值 |
---|
-i, --app-id | 是 | 小程序appId | 无 |
-s, --space-id | 是 | 云服务空间ID | 无 |
-n, --name | 是 | 云函数名 | 无 |
-p, --path | 是 | 下载后保存路径 | 无 |
云函数HTTP触发
# 开启todo云函数的HTTP触发
alipaydev cloud function http -i 2021001107626425 -s 123456 --enable -n todo -p /http/todo
# 关闭todo云函数的HTTP触发
alipaydev cloud function http -i 2021001107626425 -s 123456 --no-enable -n todo
参数 | 必填 | 说明 | 默认值 |
---|
-i, --app-id | 是 | 小程序appId | 无 |
-s, --space-id | 是 | 云服务空间ID | 无 |
-n, --name | 是 | 云函数名 | 无 |
-p, --path | 否 | 云函数HTTP触发路径,须以/http开头 | 无 |
--enable | 否 | 开启HTTP触发功能 | true |
--no-enable | 否 | 关闭HTTP触发功能 | 无 |
密钥相关
密钥生成
# 在当前目录生成密钥文件,并在终端中打印。密钥类型RSA2,密钥格式PCKS8
alipaydev key create
参数 | 必填 | 说明 | 默认值 |
---|
-t, --type | 否 | 密钥类型(rsa2/rsa) | rsa2 |
-s, --scheme | 否 | 密钥格式(pkcs8/pkcs1) | pkcs8 |
--pub-path | 否 | 公钥保存地址 | 当前工作目录 |
--pri-path | 否 | 私钥保存地址 | 当前工作目录 |
工具密钥上传
alipaydev key upload
密钥匹配检测
# 校验public.txt 和private.txt 中存放的公私钥是否成对匹配
alipaydev key match --pub-path /Users/keys/public.txt --pri-path /Users/keys/private.txt
参数 | 必填 | 说明 |
---|
--pub-path | 是 | 公钥地址 |
--pri-path | 是 | 私钥地址 |
密钥转换
# 将 private.txt中的私钥转换成pcks1格式
alipaydev key convert --pri-path /Users/keys/private.txt -s pkcs1
参数 | 必填 | 说明 | 默认值 |
---|
--pri-path | 是 | 私钥地址 | 无 |
-s, --scheme | 否 | 密钥格式(pkcs8/pkcs1) | pkcs8 |
https代理
使用superagent-proxy代理服务,默认服务地址: https://ideservice.alipay.com
# 将所有服务代理到指定地址
alipaydev config set --proxy http://127.0.0.1
SDK引入
npm install alipay-dev --save
import alipaydev from 'alipay-dev'
const alipaydev = require('alipay-dev')
初始化配置
alipaydev.setConfig({
toolId: '',
privateKey: '',
})
小程序列表
demo
const miniList = await alipaydev.miniAppList()
入参
无
返回
返回一个数组,每一项属性如下
属性 | 类型 | 说明 |
---|
appId | string | 小程序appId |
appName | string | 小程序名称 |
logoUrl | string | 小程序logo |
subApplicationType | string | 程序类型: TINYAPP_NORMAL, TINYAPP_PLUGIN, TINYAPP_TEMPLATE |
小程序预览
demo
const previewResult = await alipaydev.miniPreview({
project: '/code/mini/path',
appId: '2019012963164448',
page: 'page/shop/detail?id=10&from=name',
onProgressUpdate (info) {
const { status, data } = info
console.log(status, data)
}
})
入参
参数 | 必填 | 说明 | 默认值 |
---|
project | 是 | 本地项目地址 | 无 |
appId | 是 | 小程序appId | 无 |
page | 否 | 落地页 | 无 |
launch | 否 | app.js的onLaunch中取得 | 无 |
qrcodeFormat | 否 | 返回二维码文件的格式。 'terminal', 'base64', 'image' | image |
qrcodeOutput | 否 | 二维码文件保存路径 | 无 |
onProgressUpdate | 否 | 上传过程中的回调 | 无 |
返回
属性 | 类型 | 说明 |
---|
subApplicationType | string | 程序类型: TINYAPP_NORMAL, TINYAPP_PLUGIN, TINYAPP_TEMPLATE |
schema | string | 支付宝schema链接 |
qrcode | string | schema对应的二维码 |
获取最近的上传版本号
demo
const uploadLastVersion = await alipaydev.getUploadVersion({
appId: '2019012963164448',
clientType: 'alipay',
})
小程序上传
demo
const uploadResult = await alipaydev.miniUpload({
project: '/code/mini/path',
appId: '2019012963164448',
clientType: 'alipay',
experience: true,
onProgressUpdate (info) {
const { status, data } = info
console.log(status, data)
}
})
入参
参数 | 必填 | 说明 | 默认值 |
---|
project | 是 | 项目目录 | 无 |
appId | 是 | 小程序appId | 无 |
packageVersion | 否 | 上传包版本 | 线上包版本自增0.0.1 |
clientType | 否 | 上传的终端。 支付宝: alipay,高德: amap | alipay |
experience | 否 | 上传成功后,自动设置为体验版本, 该功能只针对小程序主账号生效 | false |
onProgressUpdate | 否 | 上传过程中的回调 | 无 |
返回
属性 | 类型 | 说明 |
---|
subApplicationType | string | 程序类型: TINYAPP_NORMAL, TINYAPP_PLUGIN, TINYAPP_TEMPLATE |
packages | package[] | 编译后的代码包信息 |
- package.name | string | 上传包名字 |
- package.type | string | 类型,整包,主包,分包 |
- package.size | string | 上传包尺寸,单位KB |
packageVersion | string | 上传包的版本 |
qrCodeUrl | string | 体验二维码在线地址 |
空间列表
demo
const result = await alipaydev.cloudSpaceList('2021001158675201')
入参
返回
返回一个数组,每一项属性如下
属性 | 类型 | 说明 |
---|
appWorkspaceId | string | 空间id |
name | string | 空间名称 |
envStatus | string | 空间状态 |
指定空间下的云函数列表
demo
const result = await alipaydev.cloudFunctionList({
appId: '2021001158675201',
spaceId: '02664190-6841-4f50-980a-12121504a807'
})
入参
参数 | 必填 | 说明 | 默认值 |
---|
appId | 是 | 小程序appId | 无 |
spaceId | 是 | 服务空间ID | 无 |
返回
返回一个数组,每一项属性如下
属性 | 类型 | 说明 |
---|
name | string | 云函数名称 |
desc | string | 云函数描述 |
createdAt | string | 创建时间 |
modifiedAt | string | 修改时间 |
timeout | string | 云函数超时时间 |
运行本地云函数
demo
const result = await alipaydev.invokeLocalFunction({
appId: '20190666750666',
spaceId: '1d98dd70-ceb5-4334-b958-85ff3c7aa8f4',
project: '/server/functions',
name: 'main',
functionArgs: {
x: 1,
y: 1
},
})
入参
参数 | 必填 | 说明 | 默认值 |
---|
appId | 是 | 小程序appId | 无 |
spaceId | 是 | 服务空间ID | 无 |
project | 是 | 本地项目地址 | 无 |
name | 是 | 云函数名 | 无 |
functionArgs | 否 | 云函数参数 | {} |
返回
本地云函数运行的结果
上传云函数
demo
const result = await alipaydev.deployCloudFunction({
appId: '2021001158675201',
spaceId: '02664190-6841-4f50-980a-12121504a807',
project: '/server/functions/demo'
name: 'demo'
})
入参
参数 | 必填 | 说明 | 默认值 |
---|
appId | 是 | 小程序appId | 无 |
spaceId | 是 | 服务空间ID | 无 |
project | 是 | 本地项目地址 | 无 |
name | 是 | 云函数名 | 无 |
desc | 否 | 云函数描述 | 无 |
返回
属性 | 类型 | 说明 |
---|
name | string | 云函数名称 |
deploymentId | string | 部署id |
下载云函数
demo
const result = await alipaydev.downloadCloudFunction({
appId: '2021001158675201',
spaceId: '02664190-6841-4f50-980a-12121504a807',
name: 'demo',
path: '/server/functions/',
unzip: true
})
入参
参数 | 必填 | 说明 | 默认值 |
---|
appId | 是 | 小程序appId | 无 |
spaceId | 是 | 服务空间ID | 无 |
name | 是 | 云函数名 | 无 |
path | 是 | 保存路径 | 无 |
unzip | 否 | 下载后,是否自动解压 | false |
返回
属性 | 类型 | 说明 |
---|
stat | string | 下载状态, stat为ok代表成功 |
code | string | 错误码 |
message | string | 提示信息 |
云函数http触发器
demo
const result = await alipaydev.updateFunctionHttpTrigger({
appId: '2021001158675201',
spaceId: '02664190-6841-4f50-980a-12121504a807',
name: 'todo',
httpTriggerPath: '/http/todo',
enable: true
})
密钥生成
demo
const { privatePem, publicPem } = await alipaydev.createKey({
type: 'rsa2',
scheme: 'pkcs8'
})
入参
参数 | 必填 | 说明 | 默认值 |
---|
type | 否 | 密钥类型(rsa2/rsa) | rsa2 |
scheme | 否 | 密钥格式(pkcs8/pkcs1) | pkcs8 |
pubPath | 否 | 公钥保存地址 | 无 |
priPath | 否 | 私钥保存地址 | 无 |
返回
属性 | 类型 | 说明 |
---|
privatePem | string | 私钥 |
publicPem | string | 公钥 |
密钥匹配检测
demo
const success = await alipaydev.matchKey({
privatePem: '',
publicPem: ''
})
入参
参数 | 必填 | 说明 | 默认值 |
---|
privatePem | 是 | 私钥 | 无 |
publicPem | 是 | 公钥 | 无 |