JSPM

  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q49264F
  • License MIT

支付宝开放平台命令工具箱,提供小程序开发过程中的各种便捷工具

Package Exports

  • alipay-dev

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (alipay-dev) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

简介

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
密钥 密钥生成 alipaydev key create
密钥匹配检测 alipaydev key match
密钥转换 alipaydev key convert

在线视频演示

支付宝服务群

工具初始化配置

操作流程:

  1. 运行alipaydev key create -w生成密钥(pkcs8 rsa2 格式)
  2. 运行alipaydev key upload自动打开浏览器配置页或直接前往“工具密钥设置” 页面进行工具公钥和IP白名单(可选)设置。将第一步生成的“公钥”在此页面配置,设置完成后系统会为您分配一个工具ID(toolId)
  3. 工具密钥设置页面配置完成后,运行配置命令,设置第二步系统分配的工具Id(toolId)
alipaydev config set -i 工具ID

参数说明

参数 必填 说明 默认值
-i, --tool-id 工具id
-k, --private-key 工具私钥

appId和spaceId切换

以下所有命令,需要传入--app-id--space-id, 都可以提前选定

# 可以切换当前操作的小程序
alipaydev mini list

# 可以切换当前操作的云服务空间
alipaydev cloud space list

# 查看工具的配置信息
alipaydev config list

小程序相关

小程序预览

示例

# 将 /Users/workspace/Demos/todos 目录下的小程序源码上传预览
alipaydev mini preview -p /Users/workspace/Demos/todos

# 默认启动页为pages/index/index,参数q=v&id=33,小程序launch参数为name=demo&fromId=11
alipaydev mini preview -p /Users/workspace/Demos/todos -i 20190666750666 --page 'pages/index/index?q=v&id=33' --launch 'name=demo&fromId=11'

CLI参数

参数 必填 说明 默认值
-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 -p /Users/workspace/Demos
参数 必填 说明 默认值
-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 alipay
-e, --experience 上传成功后,自动设置为体验版本, 该功能只针对小程序主账号生效 false

demo下载

示例

alipaydev mini demo

参数

参数 必填 说明
-p, --path 下载到指定目录

云开发相关

查看云服务空间列表

示例

# 查看云服务空间列表,在终端显示云服务空间的名称以及云服务空间的 ID
alipaydev cloud space list -i 2021001107626425

查看云函数列表

示例

# 查询服务空间下的云函数列表
alipaydev cloud function list

参数

参数 必填 说明 默认值
-i, --app-id 小程序appId
-s, --space-id 云服务空间ID

启动本地调试服务

alipaydev cloud function dev -p /server/functions --inspect
参数 必填 说明 默认值
-i, --app-id 小程序appId
-p, --project 云函数根目录
--port 服务启动端口 3636
--inspect 启动chrome调试器 false

上传云函数

示例

# 上传云函数根目录下名为 getSum 的云函数
alipaydev cloud function deploy -n getSum -p /server/functions
# 上传云函数根目录下名为 aaa bbb的云函数
alipaydev cloud function deploy -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  -n main --path /server/functions

参数

参数 必填 说明 默认值
-i, --app-id 小程序appId
-s, --space-id 云服务空间ID
-n, --name 云函数名
-p, --path 下载后保存路径

密钥相关

密钥生成

示例

# 在当前目录生成密钥文件,并在终端中打印。密钥类型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

SDK引入

npm install alipay-dev --save
import alipaydev from 'alipay-dev'
// 或者
const alipaydev = require('alipay-dev')

初始化配置

alipaydev.setConfig({
  toolId: '',
  privateKey: '',
})

小程序预览

demo

const previewResult =  await alipaydev.miniPreview({
  project: '/code/mini/path',
  appId: '2019012963164448',
  page: 'page/shop/detail?id=10&from=name'
})

入参

参数 必填 说明 默认值
project 本地项目地址
appId 小程序appId
page 落地页
launch app.js的onLaunch中取得
qrcodeFormat 返回二维码文件的格式。 'terminal', 'base64', 'image' image
qrcodeOutput 二维码文件保存路径

返回

属性 类型 说明
schema string 支付宝schema链接
qrcode string schema对应的二维码

小程序上传

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 上传过程中的回调

返回

属性 类型 说明
packages package[] 编译后的代码包信息
- package.name string 上传包名字
- package.type string 类型,整包,主包,分包
- package.size string 上传包尺寸,单位KB
packageVersion string 上传包的版本
qrCodeUrl string 体验二维码在线地址

空间列表

demo

const result = await alipaydev.cloudSpaceList('2021001158675201')

入参

参数 必填 说明 默认值
appId 小程序appId

返回

返回一个数组,每一项属性如下

属性 类型 说明
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 提示信息

密钥生成

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

// true or false
const success = await alipaydev.matchKey({
  privatePem: '',
  publicPem: ''
})

入参

参数 必填 说明 默认值
privatePem 私钥
publicPem 公钥