更新记录
1.0.4(2020-12-30) 下载此版本
优化已知问题
1.0.3(2020-12-30) 下载此版本
优化已知问题
1.0.2(2020-05-23) 下载此版本
- 重新整理插件功能
平台兼容性
阿里云 | 腾讯云 | 支付宝云 |
---|---|---|
√ | √ | √ |
云函数类插件通用教程
使用云函数类插件的前提是:使用HBuilderX 2.9+
openapi简介
mp-cloud-openapi
是uniCloud
提供的微信、支付宝等小程序云端能力的封装。比如获取小程序码等。开发者无需关心请求发送、加密、平台差异等问题,只需要关注输入和输出即可。
注意
本插件不包括登录、支付、订阅消息、内容安全。这4部分官方有单独的插件。
- uni-id:全端的、云端一体的账户系统。
- uni-pay:全端的、云端一体的支付系统。
- uni-subscribemsg:小程序和公众号订阅消息/模板消息。
- 内容安全:校验入库的文字、图片安全性,避免违法违规
引入mp-cloud-openapi
// 插件市场导入的引入方式
const openapi = require('mp-cloud-openapi')
微信小程序平台
直接使用微信开放能力,参数名与微信服务端api相对应,只是转为了驼峰形式。返回值也转为了驼峰形式
初始化
入参说明
参数名 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
appId | String | - | 是 | 小程序ID |
secret | String | - | - | 小程序密钥 |
accessToken | String | - | - | 接口调用凭证,getAccessToken 接口不需要此字段,其他接口可以在初始化时传入,也可以在调用api时传入 |
返回值说明
返回openapi
实例用以调用微信开放能力
示例代码
const openapiWeixin = openapi.initWeixin({
appId: 'appId',
secret: 'secret'
})
小程序码
wxacode.createQRCode
获取小程序二维码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制.
openapiWeixin.wxacode.createQRCode
入参说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
path | string | 是 | 扫码进入的小程序页面路径,最大长度 128 字节,不能为空。 | |
width | number | 430 | 否 | 二维码的宽度,单位 px。最小 280px,最大 1280px |
返回值说明
包含二进制数据及其数据类型的对象
属性 | 类型 | 说明 |
---|---|---|
contentType | String | 数据类型 (MIME Type) |
buffer | Buffer | 数据 Buffer |
errCode | number | 错误码 |
errMsg | string | 错误信息 |
使用示例
exports.main = async (event, context) => {
try {
const result = await openapiWeixin.wxacode.createQRCode({
path: 'page/index/index',
width: 430
})
return result
} catch (err) {
return err
}
}
wxacode.get
获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的应用码,永久有效,有数量限制.
入参说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
path | String | 是 | 扫码进入的应用页面路径,最大长度 128 字节,不能为空 | |
width | Number | 430 | 否 | 二维码的宽度,单位 px。最小 280px,最大 1280px |
autoColor | Boolean | false | 否 | 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 |
lineColor | Object | {"r":0,"g":0,"b":0} | 否 | auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示 |
isHyaline | Boolean | false | 否 | 是否需要透明底色,为 true 时,生成透明底色的应用码 |
返回值说明
属性 | 类型 | 说明 |
---|---|---|
contentType | String | 数据类型 (MIME Type) |
buffer | Buffer | 数据 Buffer |
errCode | Number | 错误码 |
errMsg | String | 错误信息 |
使用示例
exports.main = async (event, context) => {
try {
const result = await openapiWeixin.wxacode.get({
path: 'page/index/index',
width: 430
})
return result
} catch (err) {
return err
}
}
wxacode.getUnlimited
获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的应用码,永久有效,数量暂无限制。
入参说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
scene | String | 是 | 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#><'()*+,/:;=?@-._~ ,其它字符请自行编码为合法字符(因不支持% ,中文无法使用 urlencode 处理,请使用其他编码方式) |
|
page | String | 主页 | 否 | 必须是已经发布的应用存在的页面(否则报错),例如 pages/index/index , 根路径前不要填加 / ,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面 |
width | Number | 430 | 否 | 二维码的宽度,单位 px,最小 280px,最大 1280px |
autoColor | Boolean | false | 否 | 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false |
lineColor | Object | {"r":0,"g":0,"b":0} | 否 | auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示 |
isHyaline | Boolean | false | 否 | 是否需要透明底色,为 true 时,生成透明底色的应用 |
返回值说明
包含二进制数据及其数据类型的对象
属性 | 类型 | 说明 |
---|---|---|
contentType | String | 数据类型 (MIME Type) |
buffer | Buffer | 数据 Buffer |
errCode | Number | 错误码 |
errMsg | String | 错误信息 |
使用示例
exports.main = async (event, context) => {
try {
const result = await openapiWeixin.wxacode.getUnlimited({
path: 'page/index/index',
width: 430
})
return result
} catch (err) {
return err
}
}
图像处理
img.aiCrop
入参说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
imgUrl | String | - | 要检测的图片 url,传这个则不用传 img 参数。 | |
img | FormData | - | form-data 中媒体文件标识,有filename、filelength、content-type等信息,传这个则不用传 imgUrl。 |
img 的结构
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
contentType | String | 是 | 数据类型,传入 MIME Type | |
value | Buffer | 是 | 文件 Buffer |
返回值说明
属性 | 类型 | 说明 |
---|---|---|
errCode | String | 错误码 |
errMsg | String | 错误信息 |
result | Array | 裁剪结果 |
imgSize | Object | 图像尺寸 |
使用示例
openapiWeixin.img.aiCrop({
img: {
contentType: 'image/png',
value: Buffer
}
})
返回数据示例
{
"errcode": 0,
"errmsg": "ok",
"results": [ //智能裁剪结果
{
"cropLeft": 112,
"cropTop": 0,
"cropRight": 839,
"cropBottom": 727
},
{
"cropLeft": 0,
"cropTop": 205,
"cropRight": 965,
"cropBottom": 615
}
],
"imgSize": { //图片大小
"w": 966,
"h": 728
}
}
img.scanQRCode
入参说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
imgUrl | String | 是 | 要检测的图片 url,传这个则不用传 img 参数。 | |
img | FormData | 是 | form-data 中媒体文件标识,有filename、filelength、content-type等信息,传这个则不用传 img_url。 |
img 的结构
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
contentType | String | 是 | 数据类型,传入 MIME Type | |
value | Buffer | 是 | 文件 Buffer |
返回值说明
属性 | 类型 | 说明 |
---|---|---|
errCode | String | 错误码 |
errMsg | String | 错误信息 |
注意事项
- 文件大小限制:小于2M
- 支持条码、二维码、DataMatrix和PDF417的识别。 二维码、DataMatrix会返回位置坐标,条码和PDF417暂不返回位置坐标。
使用示例
exports.main = async (event, context) => {
const result = await openapiWeixin.img.scanQRCode({
img: {
contentType: 'image/png',
value: Buffer
}
})
}
返回数据示例
{
"errCode": 0,
"errMsg": "ok",
"codeResults": [
{
"typeName": "QR_CODE",
"data": "http://www.qq.com",
"pos": {
"leftTop": {
"x": 585,
"y": 378
},
"rightTop": {
"x": 828,
"y": 378
},
"rightBottom": {
"x": 828,
"y": 618
},
"leftBottom": {
"x": 585,
"y": 618
}
}
},
{
"typeName": "QR_CODE",
"data": "https://mp.weixin.qq.com",
"pos": {
"leftTop": {
"x": 185,
"y": 142
},
"rightTop": {
"x": 396,
"y": 142
},
"rightBottom": {
"x": 396,
"y": 353
},
"leftBottom": {
"x": 185,
"y": 353
}
}
},
{
"typeName": "EAN_13",
"data": "5906789678957"
},
{
"typeName": "CODE_128",
"data": "50090500019191"
}
],
"imgSize": {
"w": 1000,
"h": 900
}
}
img.superresolution
入参说明
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
imgUrl | String | 是 | 要检测的图片 url,传这个则不用传 img 参数。 | |
img | FormData | 是 | form-data 中媒体文件标识,有filename、filelength、content-type等信息,传这个则不用传 img_url。 |
img 的结构
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
contentType | String | 是 | 数据类型,传入 MIME Type | |
value | Buffer | 是 | 文件 Buffer |
返回值说明
属性 | 类型 | 说明 |
---|---|---|
errCode | String | 错误码 |
errMsg | String | 错误信息 |
mediaId | String | 媒体文件Id |
注意事项
- 文件大小限制:小于2M 图片支持使用img参数实时上传,也支持使用imgUrl参数传送图片地址,由微信后台下载图片进行识别。 目前支持将图片超分辨率高清化2倍,即生成图片分辨率为原图2倍大小
使用示例
exports.main = async (event, context) => {
const result = await openapiWeixin.img.superresolution({
img: {
contentType: 'image/png',
value: Buffer
}
})
}
返回数据示例
{
"errcode": 0,
"errmsg": "ok",
"mediaId": "6WXsIXkG7lXuDLspD9xfm5dsvHzb0EFl0li6ySxi92ap8Vl3zZoD9DpOyNudeJGB"
}