FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# OpenAPI

请注意

FinClip 将小程序管理后台相关业务管理的服务封装成了 API,供开发者在自有业务中进行调用。

# 1. 功能介绍

开发者可以通过开放 API(OpenAPI)完成以下操作:

  • 上传小程序代码;
  • 提交小程序审核;
  • 通过小程序审核并发布;
  • 获取小程序线上版二维码;
  • 获取小程序体验版二维码链接;
  • 获取小程序版本列表;
  • 小程序登录鉴权;

# 2. 使用流程

登录 FinClip 后台,进入小程序详情页面,点击基本信息右上角的「openAPISecret」开始配置信息

首次使用时openAPISecret 的密钥默认为空,需要点击右侧的「生成」按钮获得对应的密钥内容

随后勾选下方的相关权限(目前分别提供了小程序审核小程序发布小程序代码上传代码预览账户鉴权共 5 个权限分组),点击确定后即可生效。

请注意

openAPISecret 将不会明文存储在开发平台中,请您妥善复制保存。如果遗失或需要更换,再次进入「openAPISecret」点击右侧「重置」按钮即可。

# 3. 功能与环境对比

当前功能在不同环境中可能有所区别与限制,具体请见下表,如需要进一步了解不同版本间区别与介绍,可以点击这里 (opens new window)

社区版环境 SaaS 环境 企业版(年付费或一次性买断)
费用管理

# 4. 接口文档

# 上传文件到网盘

API

POST /api/v1/mop/customer-open-api/organ/netdisk/upload

query 参数

字段 类型 含义 备注
nonce string 随机字符串 确保是唯一的,建议使用uuid
timestamp string 时间戳,单位毫秒 使用当前系统的时间戳
sign string 签名字符串

参数

content-type: application/form-data

字段 类型 含义 备注
appId string 小程序id
uploadFile file 文件 文件格式

示例

  1. appId、nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串salt如下: appId=6141bd122e0fd10001318982&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000
  2. 将salt拼接上apiKey,得到salt是这样,appId=6141bd122e0fd10001318982&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
  3. 对salt,进行MD5签名,得到sign=CCA7AC5EDFC1541EBEBA8207A46EB699
  4. 最后得到请求的例子如下:
POST /api/v1/mop/customer-open-api/organ/netdisk/upload?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699

Body application/form-data
{
    "appId": "6141bd122e0fd10001318982",
     "uploadFile":文件
}

Response
{
   "errcode": "OK",
   "error": "",
   "data": {
       "netdiskID": "6141bd122e0fd10001318982", //网盘id
    }
}

# 上传小程序代码

API

POST /api/v1/mop/customer-open-api/organ/upload/applet

query 参数

字段 类型 含义 备注
nonce string 随机字符串 确保是唯一的,建议使用uuid
timestamp string 时间戳,单位毫秒 使用当前系统的时间戳
sign string 签名字符串

参数

content-type: application/form-data

字段 类型 含义 备注
appId string 小程序id
version string 小程序版本 一般使用3位,例如:1.0.0
versionRemark string 版本描述信息
filesFromNetdisk string 小程序代码包网盘信息 json字符串,不加入签名生成
packages string 小程序包文件信息 json字符串,不加入签名生成

示例

  1. appId、version、versionRemark、nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串salt如下: appId=6141bd122e0fd10001318982&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&version=1.0.0&versionRemark=版本调试
  2. 将 salt 拼接上 apiKey,得到 salt 是这样,appId=6141bd122e0fd10001318982&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&version=1.0.0&versionRemark=版本调试 &apiKey=ABCDEFGHIJKLMNOPQ1234567890
  3. 对salt,进行MD5签名,得到sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/upload/applet?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699

Body application/form-data
{
    "appId": "6141bd122e0fd10001318982",
    "version":"1.0.0",
    "versionRemark":"调试版本",
    "filesFromNetdisk":json字符串,
    "packages":json字符串
}

Response
{
    "errcode": "OK",
    "error": "",
    "data": {
        "appId": "6141bd122e0fd10001318982", //小程序id
        "buildLog": "", //上传调试信息
        "status": true, //上传是否成功
        "buildId": "6141bd122e0fd10001318983" //此次上传的id
    }
}

# 提交小程序审核

API

POST /api/v1/mop/customer-open-api/organ/publish/applet

query 参数

字段 类型 含义 备注
nonce string 随机字符串 确保是唯一的,建议使用uuid
timestamp string 时间戳,单位毫秒 使用当前系统的时间戳
sign string 签名字符串

参数

content-type: application/json

字段 类型 含义 备注
appId string 小程序id
buildId string 编译id

json 的字段顺序必须是:appId、buildId

示例

  1. 将 body 转化为 string 字符串,得到param={"appId": "6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"}
  2. 和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"} &timestamp=1631851443000
  3. 将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"} &timestamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
  4. 对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/publish/applet?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699

Body application/json
{
  "appId": "6141bd122e0fd10001318982",
  "buildId":"6141bd122e0fd10001318983"
}

Response
{
  "data": {
        "appId": "629491cdf049b5000127e9ed",
        "sequence": 3
  },
  "errcode": "OK",
  "error": ""
}

# 通过小程序审核并发布

API

POST /api/v1/mop/customer-open-api/organ/audit/applet

query 参数

字段 类型 含义 备注
nonce string 随机字符串 确保是唯一的,建议使用uuid
timestamp string 时间戳,单位毫秒 使用当前系统的时间戳
sign string 签名字符串

参数

content-type: application/json

字段 类型 含义 备注
appId string 小程序id
sequence int 编译序列号,该字段在提交小程序上架审核后返回
operation string Approve-同意 Reject-取消
reason string 驳回原因

json 字段顺序必须是:appId、sequence、operation、reason

示例

  1. 将 body 转化为string字符串,得到param={"appId": "6141bd122e0fd10001318982","sequence":2,"operation": "Approve","reason": ""}
  2. 和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982","sequence":2,"operation": "Approve","reason": ""} &timestamp=1631851443000
  3. 将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982","sequence":2,"operation": "Approve","reason": ""} &timestamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
  4. 对 salt,进行MD5签名,得到sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/audit/applet?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699

Body application/json
{
   "appId": "629491cdf049b5000127e9ed",
   "sequence": 2,
   "operation": "Approve",
   "reason": ""
}

Response
{
   "data": {
      "appId": "629491cdf049b5000127e9ed",
      "qrcodeUrl": "${host}/api/v1/mop/runtime/applet/-f-YTA0ZWE0OTQ3MzRiYWRmNg--"
   },
   "errcode": "OK",
   "error": ""
}

# 获取小程序二维码信息

API

POST /api/v1/mop/customer-open-api/organ/release/applet/qrcode

query 参数

字段 类型 含义 备注
nonce string 随机字符串 确保是唯一的,建议使用uuid
timestamp string 时间戳,单位毫秒 使用当前系统的时间戳
sign string 签名字符串

参数

content-type: application/json

字段 类型 含义 备注
appId string 小程序id

示例

  1. 将 body 转化为 string 字符串,得到 param={"appId": "6141bd122e0fd10001318982"}
  2. 和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串salt如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982"} &timestamp=1631851443000
  3. 将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982"} &timestamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
  4. 对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/release/applet/qrcode?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699

Body json
{
     "appId": "6141bd122e0fd10001318982"
}

Response
{
   "errcode": "OK",
   "error": "",
   "data": {
      "qrData": "${host}/mop/scattered-page/#/sdktip?type=scanOpen&info=+afT21jLmm4GIvIM2V3Pmad9mLqir+XwuoQVVBrj445XPPRI6eueFFUZcUGP895jz0cGjj0Ne4fcchBRCmJO+As0XFqMrOclsqrXaogsaUOfv+Co/r96qtXEmT529qqdI2JQccA8RSSp0BzLQUVkFfWR2CigS45XtIIGtqS4RCRDFelMrsfr9uUHe8nOXYWW6ompMwFMU6J6S4o2zmG/sHnCmZZRjXDh2MxRiWQF4CkAtCgkJCwwKefA5693YfAvAj8usV+0J93NXGXHtGmU3yrn20vjCfAR5u/tiP7jj+bC38HT2J1GhgK4JuYnhomB&codeType=release"
   }
}

# 获取体验版的二维码链接

API

POST /api/v1/mop/customer-open-api/organ/publish/trial/applet

query 参数

字段 类型 含义 备注
nonce string 随机字符串 确保是唯一的,建议使用uuid
timestamp string 时间戳,单位毫秒 使用当前系统的时间戳
sign string 签名字符串

参数

content-type: application/json

字段 类型 含义 备注
appId string 小程序id
buildId string 编译id

json 的字段顺序必须是:appId、buildId

示例

  1. 将 body 转化为 string 字符串,得到 param={"appId": "6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"}
  2. 和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"} &timestamp=1631851443000
  3. 将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"} &timestamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
  4. 对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/publish/trial/applet?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699

Body application/json
{
   "appId": "6141bd122e0fd10001318982",
   "buildId":"6141bd122e0fd10001318983"
}

Response
{
   "errcode": "OK",
   "error": "",
   "data": {
      "qrData":"host/api/v1/mop/runtime/applet/-f-ZjExNmZhZDdmNGQ0NTU5MA--""
   }
}

# 获取小程序版本列表

API

GET /api/v1/mop/customer-open-api/organ/applet/ver-list/:appId

query 参数

字段 类型 含义 备注
nonce string 随机字符串 确保是唯一的,建议使用uuid
timestamp string 时间戳,单位毫秒 使用当前系统的时间戳
sign string 签名字符串

url param 参数

字段 类型 含义 备注
appId string 小程序id

示例

  1. 将请求参数转化为 string 字符串,和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: appId=62997e8b9fbba10001d44847&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000
  2. 将 salt 拼接上 apiKey,得到 salt 是这样,appId=62997e8b9fbba10001d44847&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
  3. 对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
GET /api/v1/mop/customer-open-api/organ/applet/ver-list/62997e8b9fbba10001d44847?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699

Response
{
   "data": {
      "list": [
      {
         "createTime": 1662436084640, //上传时间
         "version":  "1.1.1", //版本号
         "verType": "pubVer", //版本类型:pubVer: 线上版,trialVer:体验版,devVer:开发版,多个版本类型以","分割
         "buildId": "6141bd122e0fd10001318983" //编译id
      }
      ...
      ]
      "total": 25 //总条数
   },
   "errcode": "OK",
   "error": ""
}

# 小程序登录鉴权

API

POST /api/v1/mop/customer-open-api/organ/applet/login/auth

query 参数

字段 类型 含义 备注
nonce string 随机字符串 确保是唯一的,建议使用uuid
timestamp string 时间戳,单位毫秒 使用当前系统的时间戳
sign string 签名字符串

参数

content-type: application/json

字段 类型 含义 备注
appId string 小程序id
encodeAuth string 加密的鉴权字符串

json 的字段顺序必须是:appId、encodeAuth

示例

  1. 将 body 转化为 string 字符串,得到 param={"appId": "6141bd122e0fd10001318982","encodeAuth":"6141bd122e0fd10001318983"}
  2. 和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982","encodeAuth":"6141bd122e0fd10001318983"} &timestamp=1631851443000
  3. 将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&param={"appId": "6141bd122e0fd10001318982","encodeAuth":"6141bd122e0fd10001318983"} &timestamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
  4. 对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/applet/login/auth?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa&timestamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699

Body application/json
{
   "appId": "6141bd122e0fd10001318982",
   "encodeAuth":"qW5qtr4b5idqdi+UvM4bjd1XqpEU4/1+xYai6juNvfo="
}

Response
{
   "errcode": "OK",
   "error": "",
   "data": {
      "decodeAuth":"www.finclip.com"
   }
}
© FinClip with ❤ , Since 2017