小程序管理后台将业务管理的服务封装成 API
OpenAPI
请注意 FinClip 将小程序管理后台相关业务管理的服务封装成了 API,供开发者在自有业务中进行调用。
#1. 功能介绍
开发者可以通过开放 API(OpenAPI)完成以下操作:
上传小程序代码;
提交小程序审核;
通过小程序审核并发布;
获取小程序线上版二维码;
获取小程序体验版二维码链接;
获取小程序版本列表;
小程序登录鉴权;
#2. 使用流程
登录 FinClip 后台,进入小程序详情页面,点击基本信息右上角的「openAPISecret」开始配置信息
首次使用时openAPISecret 的密钥默认为空,需要点击右侧的「生成」按钮获得对应的密钥内容
随后勾选下方的相关权限(目前分别提供了小程序审核
,小程序发布
,小程序代码上传
,代码预览
与账户鉴权
共 5 个权限分组),点击确定后即可生效。
请注意 openAPISecret 将不会明文存储在开发平台中,请您妥善复制保存。如果遗失或需要更换,再次进入「openAPISecret」点击右侧「重置」按钮即可。
#3. 功能与环境对比
当前功能在不同环境中可能有所区别与限制,具体请见下表,如需要进一步了解不同版本间区别与介绍,可以点击这里 。
社区版环境 | 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 | 文件 | 文件格式 |
示例
appId、nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串salt如下: appId=6141bd122e0fd10001318982&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=1631851443000
将salt拼接上apiKey,得到salt是这样,appId=6141bd122e0fd10001318982&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=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×tamp=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字符串,不加入签名生成 |
示例
appId、version、versionRemark、nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串salt如下: appId=6141bd122e0fd10001318982&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=1631851443000&version=1.0.0&versionRemark=版本调试
将 salt 拼接上 apiKey,得到 salt 是这样,appId=6141bd122e0fd10001318982&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=1631851443000&version=1.0.0&versionRemark=版本调试 &apiKey=ABCDEFGHIJKLMNOPQ1234567890
对salt,进行MD5签名,得到sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/upload/applet?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=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
示例
将 body 转化为 string 字符串,得到param={"appId": "6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"}
和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": " 6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"} ×tamp=1631851443000
将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": "6141bd122e0fd10001318982"," buildId":"6141bd122e0fd10001318983"} ×tamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/publish/applet?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=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
示例
将 body 转化为string字符串,得到param={"appId": "6141bd122e0fd10001318982","sequence":2,"operation": "Approve","reason": ""}
和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": " 6141bd122e0fd10001318982","sequence":2,"operation": "Approve","reason": ""} ×tamp=1631851443000
将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": "6141bd122e0fd10001318982"," sequence":2,"operation": "Approve","reason": ""} ×tamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
对 salt,进行MD5签名,得到sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/audit/applet?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=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 | |
apiServer | string | api服务地址 |
json 的字段顺序必须是:appId、apiServer
示例
将 body 转化为 string 字符串,得到 param={"appId": "6141bd122e0fd10001318982","apiServer": "https://www.finclip.com"}
和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串salt如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": " 6141bd122e0fd10001318982","apiServer": "https://www.finclip.com"} ×tamp=1631851443000
将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": "6141bd122e0fd10001318982"," apiServer": "https://www.finclip.com"} ×tamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/release/applet/qrcode?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699 Body json { "appId": "6141bd122e0fd10001318982", "apiServer": "https://www.finclip.com" } Response { "errcode": "OK", "error": "", "data": { "qrData": "https://www.finclip.com/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 | |
apiServer | string | api服务地址 |
json 的字段顺序必须是:appId、buildId、apiServer
示例
将 body 转化为 string 字符串,得到 param={"appId": "6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983"," apiServer": "https://www.finclip.com"}
和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": " 6141bd122e0fd10001318982","buildId":"6141bd122e0fd10001318983","apiServer": "https://www.finclip.com"} ×tamp=1631851443000
将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": "6141bd122e0fd10001318982"," buildId":"6141bd122e0fd10001318983","apiServer": "https://www.finclip.com"} ×tamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/publish/trial/applet?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699 Body application/json { "appId": "6141bd122e0fd10001318982", "buildId":"6141bd122e0fd10001318983", "apiServer": "https://www.finclip.com" } Response { "errcode": "OK", "error": "", "data": { "qrData":"https://www.finclip.com/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 |
示例
将请求参数转化为 string 字符串,和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: appId=62997e8b9fbba10001d44847&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=1631851443000
将 salt 拼接上 apiKey,得到 salt 是这样,appId=62997e8b9fbba10001d44847&nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
GET /api/v1/mop/customer-open-api/organ/applet/ver-list/62997e8b9fbba10001d44847?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=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
示例
将 body 转化为 string 字符串,得到 param={"appId": "6141bd122e0fd10001318982","encodeAuth":"6141bd122e0fd10001318983"}
和 nonce、timestamp 拼接一起,并且按照参数字母排序,得到签名之前的字符串 salt 如下: nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": " 6141bd122e0fd10001318982","encodeAuth":"6141bd122e0fd10001318983"} ×tamp=1631851443000
将 salt 拼接上 apiKey,得到 salt 是这样,nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa¶m={"appId": "6141bd122e0fd10001318982"," encodeAuth":"6141bd122e0fd10001318983"} ×tamp=1631851443000&apiKey=ABCDEFGHIJKLMNOPQ1234567890
对 salt,进行 MD5 签名,得到 sign=CCA7AC5EDFC1541EBEBA8207A46EB699
POST /api/v1/mop/customer-open-api/organ/applet/login/auth?nonce=b3fceb4f-6766-4a1a-9efb-c07ce85409aa×tamp=1631851443000&sign=CCA7AC5EDFC1541EBEBA8207A46EB699 Body application/json { "appId": "6141bd122e0fd10001318982", "encodeAuth":"qW5qtr4b5idqdi+UvM4bjd1XqpEU4/1+xYai6juNvfo=" } Response { "errcode": "OK", "error": "", "data": { "decodeAuth":"www.finclip.com" } }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~