更新记录

1.0.4(2020-12-30)

优化已知问题

1.0.3(2020-12-30)

优化已知问题

1.0.2(2020-05-23)

  • 重新整理插件功能
查看更多

平台兼容性

阿里云 腾讯云 支付宝小程序云

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


openapi简介

mp-cloud-openapiuniCloud提供的微信、支付宝等小程序云端能力的封装。比如获取小程序码等。开发者无需关心请求发送、加密、平台差异等问题,只需要关注输入和输出即可。

注意

本插件不包括登录、支付、订阅消息、内容安全。这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会在产品或者网页中显著的位置发布相关信息以便及时通知到用户。如果您选择继续使用本框架,即表示您同意接受这些修改。

条款结束

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问