更新记录

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"
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

mp-cloud-openapi(以下简称软件)源码使用许可协议

2022年10月

本许可协议,是数字天堂(北京)网络技术有限公司(以下简称DCloud)对其所拥有著作权的“软件”,提供的使用许可协议。

您对“软件”的复制、使用、修改及分发受本许可协议的条款的约束,如您不接受本协议,则不能使用、复制、修改本软件。

授权许可范围

a) 授予您永久性的、全球性的、免费的、非独占的、不可撤销的本软件的源码使用许可,您可以使用这些源码制作自己的应用。

b) 您只能在DCloud产品体系内使用本软件及其源码。您不能将源码修改后运行在DCloud产品体系之外的环境,比如客户端脱离uni-app,或服务端脱离uniCloud(如涉及uniCloud)。

c) DCloud未向您授权商标使用许可。您在根据本软件源码制作自己的应用时,需以自己的名义发布软件,而不是以DCloud名义发布。

d) 本协议不构成代理关系。

DCloud的责任限制 “软件”在提供时不带任何明示或默示的担保。在任何情况下,DCloud不对任何人因使用“软件”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。

您的责任限制

a) 您需要在授权许可范围内使用软件。

b) 您在分发自己的应用时,不得侵犯DCloud商标和名誉权利。

c) 您不得进行破解、反编译、套壳等侵害DCloud知识产权的行为。您不得利用DCloud系统漏洞谋利或侵害DCloud利益,如您发现DCloud系统漏洞应第一时间通知DCloud。您不得进行攻击DCloud的服务器、网络等妨碍DCloud运营的行为。未经书面许可,您不得利用DCloud的产品进行与DCloud争夺开发者的行为。

d) 如您违反本许可协议,需承担因此给DCloud造成的损失。

本协议签订地点为中华人民共和国北京市海淀区。

根据发展,DCloud可能会对本协议进行修改。修改时,DCloud会在产品或者网页中显著的位置发布相关信息以便及时通知到用户。如果您选择继续使用本框架,即表示您同意接受这些修改。

条款结束