1.0.1 • Published 4 years ago

@dcloudio/unicloud-server-plugin v1.0.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 years ago

openapi简介

openapiuniCloud提供的能简单调用第三方api的方式,开发者无需关心请求发送,加密等,只需要关注输入和输出即可。

调用openapi之前需要先进行初始化,详细使用方式请看下面介绍

引入server-plugin

// 由npm安装的引入方式
const uniCloudOpenapi = require('@dcloudio/unicloud-server-plugin')
// 插件市场导入的引入方式
const uniCloudOpenapi = require('unicloud-server-plugin')

微信小程序平台

直接使用微信开放能力,参数名与微信服务端api相对应,只是转为了驼峰形式。返回值也转为了驼峰形式

初始化

入参说明

参数名类型默认值必填说明
appIdString-小程序ID
secretString--小程序密钥
accessTokenString--接口调用凭证,登录授权内的接口不需要此字段,其他接口可以在初始化时传入,也可以在调用api时传入

返回值说明

返回openapi实例用以调用微信开放能力

示例代码

const openapi = uniCloudOpenapi.initWeixin({
  appId: 'appId',
  secret: 'secret'
})

登录授权

auth.getOpenid(String code)

使用微信小程序login返回的code获取openidunionid等信息

入参说明

参数名类型默认值必填说明
codeString-uni.login获取的用户code

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
openidString用户唯一标识
sessionKeyString会话密钥
unionidString用户在开放平台的唯一标识符,在满足 UnionID 下发条件的情况下会返回,详见 UnionID 机制说明

|

错误码说明

说明
-1系统繁忙,此时请开发者稍候再试
0请求成功
40029code 无效
45011频率限制,每个用户每分钟100次

示例代码

const {
  openid,
  sessionKey,
  unionid
} = await openapi.auth.code2Session(code)

auth.getAccessToken(Object object)

获取小程序全局唯一后台接口调用凭据(accessToken)。调用绝大多数后台接口时都需使用 accessToken,开发者需要进行妥善保存。

入参说明

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
accessTokenString获取到的凭证
expiresInNumber凭证有效时间,单位:秒。目前是7200秒之内的值。

错误码说明

说明
-1系统繁忙,此时请开发者稍候再试
0请求成功
40001AppSecret 错误或者 AppSecret 不属于这个小程序,请开发者确认 AppSecret 的正确性
40002请确保 grant_type 字段值为 client_credential
40013不合法的 AppID,请开发者检查 AppID 的正确性,避免异常字符,注意大小写

示例代码

const {
  accessToken: 'xxxxx',
  expiresIn
} = await openapi.auth.getAccessToken()

注意

  • accessToken的存储至少要保留512个字符空间;
  • accessToken的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的accessToken失效;
  • 建议开发者统一获取和刷新accessToken,不应该各自去刷新,否则容易造成冲突,导致accessToken覆盖而影响业务;
  • accessToken 的有效期通过返回的expireIn来传达,目前是7200秒之内的值,需要根据这个有效时间提前去刷新。在刷新过程中,可对外继续输出旧的accessToken,此时公众平台后台会保证在5分钟内,新老accessToken都可用,这保证了第三方业务的平滑过渡;
  • accessToken的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新accessToken的接口,这样便于业务服务器在API调用获知accessToken已超时的情况下,可以触发accessToken的刷新流程。

auth.getPaidUnionId(Object object)

用户支付完成后,获取该用户的UnionId,无需用户授权。本接口支持第三方平台代理查询。

注意:调用前需要用户完成支付,且在支付后的五分钟内有效。

入参说明

参数名类型默认值必填说明
accessTokenString-接口调用凭证
openidString-支付用户唯一标识
transactionIdString--微信支付订单号
mchIdString--微信支付分配的商户号,和商户订单号配合使用
outTradeNoString--微信支付商户订单号,和商户号配合使用

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
unionidString用户唯一标识

错误码说明

说明
-1系统繁忙,此时请开发者稍候再试
0请求成功
40003openid 错误
89002没有绑定开放平台帐号
89300订单无效

示例代码

// 使用微信支付订单号
const {
  unionid
} = await openapi.auth.code2Session({
  accessToken: 'xxxxx',
  openid: 'xxxxx',
  transactionId: 'xxxxx'
})

// 使用商户订单号
const {
  unionid
} = await openapi.auth.code2Session({
  accessToken: 'xxxxx',
  openid: 'xxxxx',
  mchId: 'xxxxx',
  outTradeNo: 'xxxxx'
})

数据分析

analysis.getDailyRetain(Object object)

获取用户访问小程序日留存

入参说明

属性类型默认值必填说明
accessTokenString接口调用凭证
beginDateString开始日期。格式为 yyyymmdd
endDateString结束日期,格式为 yyyymmdd

endDate最大为昨日,beginDate必须为endDate的前一天

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
refDateString日期
visitUvNewObject新增用户留存
visitUvObject活跃用户留存

visitUvNew结构

属性类型说明
keyNumber标识,0开始,表示当天,1表示1天后。依此类推,key取值分别是:0,1,2,3,4,5,6,7,14,30
valueNumberkey对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时)

visitUv结构

属性类型说明
keyNumber标识,0开始,表示当天,1表示1天后。依此类推,key取值分别是:0,1,2,3,4,5,6,7,14,30
valueNumberkey对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时)

示例代码

const res = await openapi.analysis.getDailyRetain({
  accessToken: 'xxxxx',
  beginDate: 'yyyymmdd',
  endDate: 'yyyymmdd'
})

analysis.getMonthlyRetain(Object object)

获取用户访问小程序月留存

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期,格式为 yyyymmdd
endDatestring结束日期,格式为 yyyymmdd

beginDate必须为月初,endDate必须为月末,限定查询一个月的数据。

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
refDatestring时间,如:"201702"
visitUvNewObject新增用户留存
visitUvObject活跃用户留存

visitUvNew的结构

属性类型说明
keynumber标识,0开始,表示当月,1表示1月后。key取值分别是:0,1
valuenumberkey对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时)

visitUv的结构

属性类型说明
keynumber标识,0开始,表示当月,1表示1月后。key取值分别是:0,1
valuenumberkey对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时)

使用示例

const res = await cloud.openapi.analysis.getMonthlyRetain({
  accessToken: 'xxxxx',
  beginDate: 'yyyymmdd',
  endDate: 'yyyymmdd'
})

analysis.getWeeklyRetain(Object object)

获取用户访问小程序周留存

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期,格式为 yyyymmdd
endDatestring结束日期,格式为 yyyymmdd

beginDate必须为周一,endDate必须为周日

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
refDatestring时间,如:"20170306-20170312"
visitUvNewObject新增用户留存
visitUvObject活跃用户留存

visitUvNew 的结构

属性类型说明
keynumber标识,0开始,表示当周,1表示1周后。依此类推,取值分别是:0,1,2,3,4
valuenumberkey对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时)

visitUv 的结构

属性类型说明
keynumber标识,0开始,表示当周,1表示1周后。依此类推,取值分别是:0,1,2,3,4
valuenumberkey对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时)

使用示例

const res = await openapi.analysis.getWeeklyRetain({
  accessToken: 'xxxxx',
  beginDate: 'yyyymmdd',
  endDate: 'yyyymmdd'
})

analysis.getDailySummary(Object object)

获取用户访问小程序数据概况

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期。格式为 yyyymmdd
endDatestring结束日期。格式为 yyyymmdd

endDate最大为昨日,beginDate必须为endDate的前一天

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
listArray.<Object>数据列表

list 的结构

属性类型说明
refDatestring日期,格式为 yyyymmdd
visitTotalnumber累计用户数
sharePvnumber转发次数
shareUvnumber转发人数

使用示例

const result = await cloud.openapi.analysis.getDailySummary({
  accessToken: 'xxxxx',
  beginDate: 'yyyymmdd',
  endDate: 'yyyymmdd'
})

analysis.getDailyVisitTrend(Object object)

获取用户访问小程序数据日趋势

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期。格式为 yyyymmdd
endDatestring结束日期。格式为 yyyymmdd

endDate最大为昨日,beginDate必须为endDate的前一天

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
listArray.<Object>数据列表

list 的结构

属性类型说明
refDatestring日期,格式为 yyyymmdd
sessionCntnumber打开次数
visitPvnumber访问次数
visitUvnumber访问人数
visitUvNewnumber新用户数
stayTimeUvnumber人均停留时长 (浮点型,单位:秒)
stayTimeSessionnumber次均停留时长 (浮点型,单位:秒)
visitDepthnumber平均访问深度 (浮点型)

使用示例

const result = await cloud.openapi.analysis.getDailyVisitTrend({
  accessToken: 'xxxxx',
  beginDate: 'yyyymmdd',
  endDate: 'yyyymmdd'
})

analysis.getMonthlyVisitTrend(Object object)

获取用户访问小程序数据月趋势

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期。格式为 yyyymmdd
endDatestring结束日期。格式为 yyyymmdd

beginDate必须为月初,endDate必须为月末,限定查询一个月的数据。

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
listArray.<Object>数据列表

list 的结构

属性类型说明
refDatestring时间,格式为 yyyymm,如:"201702"
sessionCntnumber打开次数(自然月内汇总)
visitPvnumber访问次数(自然月内汇总)
visitUvnumber访问人数(自然月内去重)
visitUvNewnumber新用户数(自然月内去重)
stayTimeUvnumber人均停留时长 (浮点型,单位:秒)
stayTimeSessionnumber次均停留时长 (浮点型,单位:秒)
visitDepthnumber平均访问深度 (浮点型)

使用示例

const result = await cloud.openapi.analysis.getMonthlyVisitTrend({
  accessToken: 'xxxxx',
  beginDate: '20170301',
  endDate: '20170331'
})

analysis.getWeeklyVisitTrend

获取用户访问小程序数据周趋势

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期。格式为 yyyymmdd
endDatestring结束日期。格式为 yyyymmdd

beginDate必须为周一,endDate必须为周日,限定查询一周的数据。

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
listArray.<Object>数据列表

list 的结构

属性类型说明
refDatestring时间,格式为 yyyymm,如:"20170306-20170312"
sessionCntnumber打开次数(自然周内汇总)
visitPvnumber访问次数(自然周内汇总)
visitUvnumber访问人数(自然周内去重)
visitUvNewnumber新用户数(自然周内去重)
stayTimeUvnumber人均停留时长 (浮点型,单位:秒)
stayTimeSessionnumber次均停留时长 (浮点型,单位:秒)
visitDepthnumber平均访问深度 (浮点型)

使用示例

const result = await openapi.analysis.getWeeklyVisitTrend({
  accessToken: 'xxxxx',
  beginDate: '20170306',
  endDate: '20170312'
})

analysis.getUserPortrait

获取小程序新增或活跃用户的画像分布数据。时间范围支持昨天、最近7天、最近30天。其中,新增用户数为时间范围内首次访问小程序的去重用户数,活跃用户数为时间范围内访问过小程序的去重用户数。

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期。格式为 yyyymmdd
endDatestring结束日期。格式为 yyyymmdd

endDatebeginDate必须相差0/6/29天,分别代表查询最近1/7/30天数据,endDate允许设置的最大值为昨日。

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
refDatestring时间范围,如:"20170611-20170617"
visitUvNewObject新用户画像
visitUvObject活跃用户画像

visitUvNew 的结构

属性类型说明
indexnumber分布类型
provinceObject省份,如北京、广东等
cityObject城市,如北京、广州等
gendersObject性别,包括男、女、未知
platformsObject终端类型,包括 iPhone,android,其他
devicesObject机型,如苹果 iPhone 6,OPPO R9 等
agesObject年龄,包括17岁以下、18-24岁等区间

province 的结构

属性类型说明
idnumber属性值id
namestring属性值名称,与id对应。如属性为 province 时,返回的属性值名称包括「广东」等。
accessSourceVisitUvnumber该场景访问uv

city 的结构

属性类型说明
idnumber属性值id
namestring属性值名称,与id对应。如属性为 province 时,返回的属性值名称包括「广东」等。
accessSourceVisitUvnumber该场景访问uv

genders 的结构

属性类型说明
idnumber属性值id
namestring属性值名称,与id对应。如属性为 province 时,返回的属性值名称包括「广东」等。
accessSourceVisitUvnumber该场景访问uv

platforms 的结构

属性类型说明
idnumber属性值id
namestring属性值名称,与id对应。如属性为 province 时,返回的属性值名称包括「广东」等。
accessSourceVisitUvnumber该场景访问uv

devices 的结构

属性类型说明
idnumber属性值id
namestring属性值名称,与id对应。如属性为 province 时,返回的属性值名称包括「广东」等。
accessSourceVisitUvnumber该场景访问uv

ages 的结构

属性类型说明
idnumber属性值id
namestring属性值名称,与id对应。如属性为 province 时,返回的属性值名称包括「广东」等。
accessSourceVisitUvnumber该场景访问uv

visitUv 的结构

属性类型说明
indexnumber分布类型
provinceObject省份,如北京、广东等
cityObject城市,如北京、广州等
gendersObject性别,包括男、女、未知
platformsObject终端类型,包括 iPhone,android,其他
devicesObject机型,如苹果 iPhone 6,OPPO R9 等
agesObject年龄,包括17岁以下、18-24岁等区间

使用示例

const result = await openapi.analysis.getUserPortrait({
  accessToken: 'xxxxx',
  beginDate: '20170306',
  endDate: '20170312'
})

analysis.getVisitDistribution

获取用户小程序访问分布数据

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期。格式为 yyyymmdd
endDatestring结束日期。格式为 yyyymmdd

endDate必须等于beginDateendDate最大可选择昨天,限定查询一天的数据。

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
refDatestring日期,格式为 yyyymmdd
listArray.<Object>数据列表

list 的结构

属性类型说明
indexString分布类型
itemListArray.<Object>分布数据列表

index 属性说明

说明
access_source_session_cnt访问来源分布
access_staytime_info访问时长分布
access_depth_info访问深度的分布

item_list 的结构

属性类型说明
keynumber场景 id,定义在各个 index 下不同,具体参见下方表格
valuenumber该场景 id 访问 pv
access_source_visit_uvnumber该场景 id 访问 uv

访问来源 key 对应关系(index="access_source_session_cnt")

key访问来源对应场景值
1小程序历史列表1001
2搜索1005 1006 1027 1042 1053
3会话1007 1008 1044 1096
4扫一扫二维码1011 1047
5公众号主页1020
6聊天顶部1022
7系统桌面1023
8小程序主页1024
9附近的小程序1026 1068
11模板消息1014 1043
13公众号菜单1035
14APP分享1036
15支付完成页1034
16长按识别二维码1012 1048
17相册选取二维码1013 1049
18公众号文章1058
19钱包1019
20卡包1028
21小程序内卡券1029
22其他小程序1037
23其他小程序返回1038
24卡券适用门店列表1052
25搜索框快捷入口1054
26小程序客服消息1073 1081
27公众号下发1074 1082
29任务栏-最近使用1089
30长按小程序菜单圆点1090
31连wifi成功页1078
32城市服务1092
33微信广告1045 1046 1067 1084
34其他移动应用1069
35发现入口-我的小程序(基础库2.2.4版本起1103场景值废弃,不影响此处统计结果)1103
36任务栏-我的小程序(基础库2.2.4版本起1104场景值废弃,不影响此处统计结果)1104
10其他除上述外其余场景值

访问时长 key 对应关系(index="access_staytime_info")

key访问时长
10-2s
23-5s
36-10s
411-20s
520-30s
630-50s
750-100s
8>100s

平均访问深度 key 对应关系(index="access_depth_info")

key访问深度
11 页
22 页
33 页
44 页
55 页
66-10 页
7>10 页

使用示例

const result = await openapi.analysis.getVisitDistribution({
  accessToken: 'xxxxx',
  beginDate: '20170306',
  endDate: '20170306'
})

analysis.getVisitPage

访问页面。目前只提供按 page_visit_pv 排序的 top200

入参说明

属性类型默认值必填说明
accessTokenstring接口调用凭证
beginDatestring开始日期。格式为 yyyymmdd
endDatestring结束日期。格式为 yyyymmdd

endDate必须等于beginDateendDate最大可选择昨天,限定查询一天的数据。

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
pagePathString页面路径
pageVisitPvNumber访问次数
pageVisitUvNumber访问人数
pageStaytimePvNumber次均停留时长
entrypagePvNumber进入页次数
exitpagePvNumber退出页次数
pageSharePvNumber转发次数
pageShareUvNumber转发人数

使用示例

const result = await openapi.analysis.getVisitPage({
  accessToken: 'xxxxx',
  beginDate: '20170306',
  endDate: '20170306'
})

客服消息

customerServiceMessage.getTempMedia

获取客服消息内的临时素材。即下载临时的多媒体文件。目前小程序仅支持下载图片文件。

入参说明

属性类型默认值必填说明
accessTokenString接口调用凭证
mediaIdString媒体文件 ID

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
contentTypeString数据类型 (MIME Type)
bufferBuffer数据 Buffer

错误码说明

说明
40007无效媒体文件 ID

使用示例

openapi.customerServiceMessage.getTempMedia({
  accessToken: 'xxx',
  mediaId: ''
})

customerServiceMessage.send

发送客服消息给用户。详细规则见 发送客服消息

入参说明

属性类型默认值必填说明
accessTokenString接口调用凭证
touserString用户的 OpenID
msgtypeString消息类型
textObject文本消息,msgtype="text" 时必填
imageObject图片消息,msgtype="image" 时必填
linkObject图文链接,msgtype="link" 时必填
miniprogrampageObject小程序卡片,msgtype="miniprogrampage" 时必填

msgtype 的合法值

说明
text文本消息
image图片消息
link图文链接
miniprogrampage小程序卡片

text 的结构

属性类型默认值必填说明
contentstring文本消息内容

image 的结构

属性类型默认值必填说明
mediaIdstring发送的图片的媒体ID,通过 新增素材接口 上传图片文件获得。

link 的结构

属性类型默认值必填说明
titlestring消息标题
descriptionstring图文链接消息
urlstring图文链接消息被点击后跳转的链接
thumbUrlstring图文链接消息的图片链接,支持 JPG、PNG 格式,较好的效果为大图 640 X 320,小图 80 X 80

miniprogrampage 的结构

属性类型默认值必填说明
titlestring消息标题
pagepathstring小程序的页面路径,跟app.json对齐,支持参数,比如pages/index/index?foo=bar
thumbMediaIdstring小程序消息卡片的封面, image 类型的 media_id,通过 新增素材接口 上传图片文件获得,建议大小为 520*416

返回值说明

属性类型说明
errCodenumber错误码,错误码0为成功
errMsgstring错误信息

错误码说明

说明
0请求成功
-1系统繁忙,此时请开发者稍候再试
40001获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的小程序调用接口
40002不合法的凭证类型
40003不合法的 OpenID,请开发者确认 OpenID 是否是其他小程序的 OpenID
45015回复时间超过限制
45047客服接口下行条数超过上限
48001API 功能未授权,请确认小程序已获得该接口

使用示例

openapi.customerServiceMessage.getTempMedia({
  accessToken: 'xxx',
  mediaId: ''
})

customerServiceMessage.setTyping

下发客服当前输入状态给用户。

入参说明

属性类型默认值必填说明
accessTokenString接口调用凭证
touserString用户的 OpenID
commandString命令

command 的合法值

说明
Typing对用户下发"正在输入"状态
CancelTyping取消对用户的"正在输入"状态

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息

错误码说明

说明
45072command字段取值不对
45080下发输入状态,需要之前30秒内跟用户有过消息交互
45081已经在输入状态,不可重复下发

customerServiceMessage.uploadTempMedia

把媒体文件上传到微信服务器。目前仅支持图片。用于发送客服消息或被动回复用户消息。

属性类型默认值必填说明
accessTokenstring接口调用凭证
typestring文件类型
mediaFormData媒体文件数据

type 的合法值

说明
image图片

media 结构说明

属性类型默认值必填说明
contentTypestring数据类型,传入 MIME Type
valueBuffer文件 Buffer

返回值说明

属性类型说明
errCodeNumber错误码,错误码0为成功
errMsgString错误信息
typeString文件类型
mediaIdString媒体文件上传后,获取标识,3天内有效。
createdAtNumber媒体文件上传时间戳

错误码说明

说明
40004无效媒体文件类型

使用示例

openapi.customerServiceMessage.uploadTempMedia({
  accessToken: 'xxx',
  type: 'image',
  media: {
    contentType: 'image/png',
    value: Buffer
  }
})

小程序码

wxacode.createQRCode

获取小程序二维码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制.

openapi.wxacode.createQRCode

入参说明

属性类型默认值必填说明
pathstring扫码进入的小程序页面路径,最大长度 128 字节,不能为空。
widthnumber430二维码的宽度,单位 px。最小 280px,最大 1280px

返回值说明

包含二进制数据及其数据类型的对象

属性类型说明
contentTypeString数据类型 (MIME Type)
bufferBuffer数据 Buffer
errCodenumber错误码
errMsgstring错误信息

使用示例

exports.main = async (event, context) => {
  try {
    const result = await openapi.wxacode.createQRCode({
        path: 'page/index/index',
        width: 430
      })
    return result
  } catch (err) {
    return err
  }
}

wxacode.get

获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的应用码,永久有效,有数量限制.

入参说明

属性类型默认值必填说明
pathString扫码进入的应用页面路径,最大长度 128 字节,不能为空
widthNumber430二维码的宽度,单位 px。最小 280px,最大 1280px
autoColorBooleanfalse自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
lineColorObject{"r":0,"g":0,"b":0}auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
isHyalineBooleanfalse是否需要透明底色,为 true 时,生成透明底色的应用码

返回值说明

属性类型说明
contentTypeString数据类型 (MIME Type)
bufferBuffer数据 Buffer
errCodeNumber错误码
errMsgString错误信息

使用示例

exports.main = async (event, context) => {
  try {
    const result = await openapi.wxacode.get({
        path: 'page/index/index',
        width: 430
      })
    return result
  } catch (err) {
    return err
  }
}

wxacode.getUnlimited

获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的应用码,永久有效,数量暂无限制。

入参说明

属性类型默认值必填说明
sceneString最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#><'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)
pageString主页必须是已经发布的应用存在的页面(否则报错),例如 pages/index/index, 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
widthNumber430二维码的宽度,单位 px,最小 280px,最大 1280px
autoColorBooleanfalse自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
lineColorObject{"r":0,"g":0,"b":0}auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
isHyalineBooleanfalse是否需要透明底色,为 true 时,生成透明底色的应用

返回值说明

包含二进制数据及其数据类型的对象

属性类型说明
contentTypeString数据类型 (MIME Type)
bufferBuffer数据 Buffer
errCodeNumber错误码
errMsgString错误信息

使用示例

exports.main = async (event, context) => {
  try {
    const result = await openapi.wxacode.getUnlimited({
        path: 'page/index/index',
        width: 430
      })
    return result
  } catch (err) {
    return err
  }
}

图像处理

img.aiCrop

入参说明

属性类型默认值必填说明
imgUrlString-要检测的图片 url,传这个则不用传 img 参数。
imgFormData-form-data 中媒体文件标识,有filename、filelength、content-type等信息,传这个则不用传 imgUrl。

img 的结构

属性类型默认值必填说明
contentTypeString数据类型,传入 MIME Type
valueBuffer文件 Buffer

返回值说明

属性类型说明
errCodeString错误码
errMsgString错误信息
resultArray裁剪结果
imgSizeObject图像尺寸

使用示例

openapi.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

入参说明

属性类型默认值必填说明
imgUrlString要检测的图片 url,传这个则不用传 img 参数。
imgFormDataform-data 中媒体文件标识,有filename、filelength、content-type等信息,传这个则不用传 img_url。

img 的结构

属性类型默认值必填说明
contentTypeString数据类型,传入 MIME Type
valueBuffer文件 Buffer

返回值说明

属性类型说明
errCodeString错误码
errMsgString错误信息

注意事项

  • 文件大小限制:小于2M
  • 支持条码、二维码、DataMatrix和PDF417的识别。 二维码、DataMatrix会返回位置坐标,条码和PDF417暂不返回位置坐标。

使用示例

exports.main = async (event, context) => {
    const result = await openapi.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

入参说明

属性类型默认值必填说明
imgUrlString要检测的图片 url,传这个则不用传 img 参数。
imgFormDataform-data 中媒体文件标识,有filename、filelength、content-type等信息,传这个则不用传 img_url。

img 的结构

属性类型默认值必填说明
contentTypeString数据类型,传入 MIME Type
valueBuffer文件 Buffer

返回值说明

属性类型说明
errCodeString错误码
errMsgString错误信息
mediaIdString媒体文件Id

注意事项

  • 文件大小限制:小于2M 图片支持使用img参数实时上传,也支持使用imgUrl参数传送图片地址,由微信后台下载图片进行识别。 目前支持将图片超分辨率高清化2倍,即生成图片分辨率为原图2倍大小

使用示例

exports.main = async (event, context) => {
    const result = await openapi.img.superresolution({
		img: {
			contentType: 'image/png',
			value: Buffer
		}
	})
}

返回数据示例

{
    "errcode": 0,
    "errmsg": "ok",
    "mediaId": "6WXsIXkG7lXuDLspD9xfm5dsvHzb0EFl0li6ySxi92ap8Vl3zZoD9DpOyNudeJGB"
}

支付宝小程序平台

初始化

入参说明

参数名类型必填默认值说明
appIdString-小程序ID
privateKeyString-应用私钥字符串
keyTypeString-PKCS8应用私钥字符串类型

注意

返回值说明

返回openapi实例用以调用支付宝开放能力

示例代码

const openapi = uniCloudOpenapi.initAlipay({
  appId: 'appId',
  secret: 'secret'
})

登录授权

auth.code2Session(String code)

使用uni.login返回的code获取openid信息

入参说明

参数名类型默认值必填说明
codeString-uni.login获取的用户code

返回值说明

属性类型说明
openidString用户唯一标识

示例代码

const {
  openid
} = await openapi.auth.code2Session(code)

统一支付

支持支付宝和微信的支付api,

须知

  • openapi对入参和返回值均做了驼峰转化,开发者在对照微信支付或者支付宝支付对应的文档时需要注意。
  • 特殊参数appIdmchId需注意大小写
  • 所有金额被统一为以分为单位
  • 为避免无关参数干扰此文档仅列举必填参数,其余参数请参照微信支付-小程序微信支付-App支付宝支付-小程序支付宝支付-App
  • 微信支付沙箱环境不支持小程序支付,另外此沙箱环境只可以跑微信提供的测试用例不可以随意测试
  • 无论是微信还是支付宝,沙箱环境都不确保稳定,如果使用沙箱的过程中遇到疑难问题建议切换成正式环境测试

公共配置

参数名类型必填默认值说明支持平台
appIdString-当前应用在对应支付平台的 appId支付宝、微信
mchIdString微信支付必填-商户号微信
keyString微信支付必填-支付商户 md5 key微信
pfxString|Buffer微信支付必填-微信支付商户API证书,主要用于退款,微信
privateKeyString支付宝支付必填-应用私钥字符串支付宝
keyTypeString-应用私钥字符串类型支付宝
alipayPublicKeyString支付宝支付必填-支付宝公钥,验签使用支付宝
timeoutNumber5000请求超时时间,单位:毫秒支付宝、微信
signTypeString微信支付默认 MD5,支付宝默认 RSA2签名类型支付宝、微信
sandboxBooleanfalse是否启用沙箱环境支付宝、微信
clientTypeString默认自动获取客户端类型,同 context 内的 PLATFORM客户端类型,主要用于返回客户端支付参数支付宝、微信
// 初始化微信支付
const fs = require('fs') // 引入fs模块以处理微信支付商户API证书
const uniCloudOpenapi = require('@dcloudio/unicloud-opanapi')
const openapi = uniCloudOpenapi.initWeixin({
	appId:'your appId',
	mchId:'your mchId',
	key: 'you parterner key',
	pfx: fs.readFileSync('/path/to/your/pfxfile') // p12文件路径,使用微信退款时需要,需要注意的是阿里云目前不支持以相对路径读取文件,请使用绝对路径的形式
})

// 初始化支付宝支付
const uniCloudOpenapi = require('@dcloudio/unicloud-opanapi')
const openapi = uniCloudOpenapi.initAlipay({
	appId:'your appId', 
	privateKey:'your privateKey',
	alipayPublicKey: 'you alipayPublicKey' // 使用支付时需传递此值做返回结果验签
})

获取支付参数

openapi.payment.getOrderInfo,此接口仅支持微信小程序、支付宝小程序、App平台

入参说明

参数名类型必填默认值说明支持平台
openidString支付宝小程序、微信小程序必填-通过对应平台的getOpenid获取支付宝小程序、微信小程序
subjectString支付宝支付必填-订单标题支付宝支付
bodyString微信支付必填-商品描述微信支付
outTradeNoString必填-商户订单号,64个字符以内、只能包含字母、数字、下划线;需保证在商户端不重复
totalFeeNumber必填-订单金额,单位:分支付宝小程序、微信小程序
notifyUrlString必填-支付结果通知地址

返回值说明

参数名类型说明支持平台
orderInfoObject|String客户端支付所需参数,直接返回给客户端即可,下面会介绍如何搭配客户端使用

使用示例

// 云函数 - getOrderInfo
exports.main = async function (event,context) {
	let	orderInfo = await openapi.payment.getOrderInfo({
		openid: 'user openid',
		subject: '订单标题',
		body: '商品描述',
		outTradeNo: '商户订单号',
		totalFee: 1, // 金额,单位分
		notifyUrl: 'https://xxx.xx' // 支付结果通知地址
	})
	return {
		orderInfo
	}
}

// 客户端 - 微信小程序
uniCloud.callFunction({
	name: 'getOrderInfo',
	success(res) {
		uni.requestPayment({
			...res.result.orderInfo
			success(){},
			fail(){}
		})
	}
})

// 客户端 - App - 微信支付
uniCloud.callFunction({
	name: 'getOrderInfo',
	success(res) {
		uni.requestPayment({
			provider: 'wxpay',
			orderInfo: res.result.orderInfo
			success(){},
			fail(){}
		})
	}
})

// 客户端 - 支付宝小程序 
uniCloud.callFunction({
	name: 'getOrderInfo',
	success(res) {
		uni.requestPayment({
			orderInfo: res.result.orderInfo
			success(){},
			fail(){}
		})
	}
})

// 客户端 - App - 支付宝支付
uniCloud.callFunction({
	name: 'getOrderInfo',
	success(res) {
		uni.requestPayment({
			provider: 'alipay',
			orderInfo: res.result.orderInfo
			success(){},
			fail(){}
		})
	}
})

查询订单

openapi.payment.orderQuery, 根据商户订单号或者平台订单号查询订单信息,主要用于未接收到支付通知时可以使用此接口进行支付结果验证

入参说明

参数名类型必填默认值说明支持平台
outTradeNoString和transactionId二选一-商户订单号
transactionIdString和outTradeNo二选一-平台订单号

返回值说明

参数名类型说明支持平台
appIdString平台分配的应用ID微信支付
mchIdString商户号微信支付
outTradeNoString商户订单号
transactionIdString平台订单号
tradeStateString订单状态 ,微信支付: SUCCESS—支付成功,REFUND—转入退款,NOTPAY—未支付,CLOSED—已关闭,REVOKED—已撤销(刷卡支付),USERPAYING--用户支付中,PAYERROR--支付失败(其他原因,如银行返回失败)。支付宝支付:USERPAYING(交易创建,等待买家付款)、CLOSED(未付款交易超时关闭,或支付完成后全额退款)、SUCCESS(交易支付成功)、FINISHED(交易结束,不可退款)
totalFeeNumber标价金额 ,单位:分
settlementTotalFeeNumber应结订单金额,单位:分
cashFeeNumber现金支付金额,单位:分

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.orderQuery({
    outTradeNo: 'outTradeNo'
  })
  return res
}

关闭订单

openapi.payment.closeOrder,用于交易创建后,用户在一定时间内未进行支付,可调用该接口直接将未付款的交易进行关闭,避免重复支付。

注意

  • 微信支付:订单生成后不能马上调用关单接口,最短调用时间间隔为5分钟。

入参说明

参数名类型必填默认值说明支持平台
outTradeNoString使用微信时必填,使用支付宝时和transactionId二选一-商户订单号
transactionIdString使用支付宝时和outTradeNo二选一-平台订单号支付宝支付

返回值说明

参数名类型说明支持平台
appIdString平台分配的应用ID微信支付
mchIdString商户号微信支付
outTradeNoString商户订单号支付宝支付
transactionIdString平台订单号支付宝支付

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.closeOrder({
    outTradeNo: 'outTradeNo'
  })
  return res
}

撤销订单

openapi.payment.cancelOrder此接口仅支付宝支持,支付交易返回失败或支付系统超时,调用该接口撤销交易。如果此订单用户支付失败,支付宝系统会将此订单关闭;如果用户支付成功,支付宝系统会将此订单资金退还给用户。 注意:只有发生支付系统超时或者支付结果未知时可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】。

入参说明

参数名类型必填默认值说明支持平台
outTradeNoString和transactionId二选一-商户订单号支付宝支付
transactionIdString和outTradeNo二选一-平台订单号支付宝支付

返回值说明

参数名类型说明支持平台
outTradeNoString商户订单号支付宝支付
transactionIdString平台订单号支付宝支付

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.cancelOrder({
    outTradeNo: 'outTradeNo'
  })
  return res
}

申请退款

openapi.payment.refund,当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家。

微信支付注意事项

  1. 交易时间超过一年的订单无法提交退款
  2. 微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。 一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号
  3. 请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次,错误或无效请求频率限制:6qps,即每秒钟异常或错误的退款申请请求不超过6次
  4. 每个支付订单的部分退款次数不能超过50次
  5. 如果同一个用户有多笔退款,建议分不同批次进行退款,避免并发退款导致退款失败

入参说明

参数名类型必填默认值说明支持平台
outTradeNoString和transactionId二选一-商户订单号
transactionIdString和outTradeNo二选一-平台订单号
outRefundNoString微信支付必填,支付宝支付选填-商户退款单号
totalFeeNumber微信支付必填-订单总金额微信支付
refundFeeNumber必填-退款总金额微信支付
refundFeeTypeString选填-货币种类
refundDescString选填-退款原因
notifyUrlString微信支付选填,支付宝不支持-退款通知url微信支付

返回值说明

参数名类型说明支持平台
outTradeNoString商户订单号
transactionIdString平台订单号
outRefundNoString商户退款单号微信支付
refundIdString平台退款单号
refundFeeNumber退款总金额
cashRefundFeeNumber现金退款金额

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.refund({
    outTradeNo: '商户订单号',
    outRefundNo: '商户退款单号', // 支付宝可不填此项
    totalFee: 1, // 订单总金额,支付宝可不填此项
    refundFee: 1 // 退款总金额
  })
  return res
}

查询退款

openapi.payment.refundQuery,提交退款申请后,通过调用该接口查询退款状态。

入参说明

参数名类型必填默认值说明支持平台
outTradeNoString微信支付四选一,支付宝和transactionId二选一-商户订单号
transactionIdString微信支付四选一,支付宝和outTradeNo二选一-平台订单号
outRefundNoString微信支付四选一,支付宝必填-商户退款单号
refundIdString微信支付四选一-平台退款单号微信支付
offsetNumber微信支付选填-偏移量,当部分退款次数超过10次时可使用,表示返回的查询结果从这个偏移量开始取记录

注意

  • outRefundNo为使用支付宝请求退款接口时,传入的商户退款单号。如果在退款请求时未传入,则该值为创建交易时的商户订单号即outTradeNo

返回值说明

参数名类型说明支持平台
outTradeNoString商户订单号
transactionIdString平台订单号
totalFeeNumber订单金额
refundIdString平台退款单号,仅支付宝返回
refundFeeNumber退款总金额
refundDescString退款理由
refundListArray<refundItem>分笔退款信息,仅微信支付返回微信支付
refundRoyaltysArray<refundRoyaltysItem>退分账明细信息,仅支付宝返回支付宝支付

refundItem说明

参数名类型说明支持平台
outRefundNoString商户退款单号
refundIdString平台退款单号
refundChannelString退款渠道,ORIGINAL—原路退款,BALANCE—退回到余额,OTHER_BALANCE—原账户异常退到其他余额账户,OTHER_BANKCARD—原银行卡异常退到其他银行卡
refundFeeNumber申请退款金额
settlementRefundFeeNumber退款金额,退款金额=申请退款金额-非充值代金券退款金额,退款金额<=申请退款金额
refundStatusString退款状态,SUCCESS—退款成功,REFUNDCLOSE—退款关闭,PROCESSING—退款处理中,CHANGE—退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往商户平台(pay.weixin.qq.com)-交易中心,手动处理此笔退款。
couponRefundFeeNumber总代金券退款金额
couponRefundCountNumber退款代金券使用数量
refundAccountString退款资金来源
refundRecvAccoutString退款入账账户
refundSuccessTimeString退款成功时间
couponListArray<couponItem>分笔退款信息

couponItem说明

参数名类型说明支持平台
couponTypeString代金券类型
couponRefundIdString退款代金券ID
couponRefundFeeString单个代金券退款金额

refundRoyaltysItem说明

参数名类型说明支持平台
fundChannelString交易使用的资金渠道
bankCodeString银行卡支付时的银行代码
amountNumber该支付工具类型所使用的金额
realAmountNumber渠道实际付款金额
fundTypeString渠道所使用的资金类型,目前只在资金渠道(fund_channel)是银行卡渠道(BANKCARD)的情况下才返回该信息(DEBIT_CARD:借记卡,CREDIT_CARD:信用卡,MIXED_CARD:借贷合一卡)

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.refundQuery({
    outTradeNo: '商户订单号',
	outRefundNo: '商户退款单号' // 支付宝必填
  })
  return res
}

下载交易账单

openapi.payment.downloadBill,商户可以通过该接口下载历史交易清单。仅微信支付支持

注意:

  1. 微信侧未成功下单的交易不会出现在对账单中。支付成功后撤销的交易会出现在对账单中,跟原支付单订单号一致;
  2. 微信在次日9点启动生成前一天的对账单,建议商户10点后再获取;
  3. 对账单中涉及金额的字段单位为“元”。
  4. 对账单接口只能下载三个月以内的账单。
  5. 对账单是以商户号纬度来生成的,如一个商户号与多个appid有绑定关系,则使用其中任何一个appid都可以请求下载对账单。对账单中的appid取自交易时候提交的appid,与请求下载对账单时使用的appid无关。

入参说明

参数名类型必填默认值说明支持平台
billDateString必填-下载对账单的日期,格式:20140603
billTypeString选填ALLALL(默认值),返回当日所有订单信息(不含充值退款订单),SUCCESS,返回当日成功支付的订单(不含充值退款订单),REFUND,返回当日退款订单(不含充值退款订单),RECHARGE_REFUND,返回当日充值退款订单

返回值说明

参数名类型说明支持平台
contentString文本表格的方式返回的数据

content示例如下

当日所有订单 交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,代金券或立减优惠金额,微信退款单号,商户退款单号,退款金额, 代金券或立减优惠退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率

当日成功支付的订单 交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额, 代金券或立减优惠金额,商品名称,商户数据包,手续费,费率

当日退款的订单 交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额, 代金券或立减优惠金额,退款申请时间,退款成功时间,微信退款单号,商户退款单号,退款金额, 代金券或立减优惠退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率

从第二行起,为数据记录,各参数以逗号分隔,参数前增加`符号,为标准键盘1左边键的字符,字段顺序与表头一致。

倒数第二行为订单统计标题,最后一行为统计数据

总交易单数,总交易额,总退款金额,总代金券或立减优惠退款金额,手续费总金额

举例如下:

交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,代金券或立减优惠金额,微信退款单号,商户退款单号,退款金额,代金券或立减优惠退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率
`2014-11-10 16:33:45,`wx2421b1c4370ec43b,`10000100,`0,`1000,`1001690740201411100005734289,`1415640626,`085e9858e3ba5186aafcbaed1,`MICROPAY,`SUCCESS,`OTHERS,`CNY,`0.01,`0.0,`0,`0,`0,`0,`,`,`被扫支付测试,`订单额外描述,`0,`0.60%
`2014-11-10 16:46:14,`wx2421b1c4370ec43b,`10000100,`0,`1000,`1002780740201411100005729794,`1415635270,`085e9858e90ca40c0b5aee463,`MICROPAY,`SUCCESS,`OTHERS,`CNY,`0.01,`0.0,`0,`0,`0,`0,`,`,`被扫支付测试,`订单额外描述,`0,`0.60%
总交易单数,总交易额,总退款金额,总代金券或立减优惠退款金额,手续费总金额
`2,`0.02,`0.0,`0.0,`0

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.downloadBill({
    billDate: '20200202',
  })
  return res
}

下载资金账单

openapi.payment.downloadFundflow,商户可以通过该接口下载自2017年6月1日起的历史资金流水账单。仅微信支持

说明:

  1. 资金账单中的数据反映的是商户微信账户资金变动情况;
  2. 当日账单在次日上午9点开始生成,建议商户在上午10点以后获取;
  3. 资金账单中涉及金额的字段单位为“元”。

入参说明

参数名类型必填默认值说明支持平台
billDateString必填-下载对账单的日期,格式:20140603
accountTypeString选填Basic账单的资金来源账户:Basic 基本账户,Operation 运营账户,Fees 手续费账户

返回值说明

参数名类型说明支持平台
contentString文本表格的方式返回的数据

content示例如下

  • 第一行为表头

记账时间,微信支付业务单号,资金流水单号,业务名称,业务类型,收支类型,收支金额(元),账户结余(元),资金变更提交申请人,备注,业务凭证号

  • 从第二行起,为资金流水数据,各参数以逗号分隔,参数前增加`符号,为标准键盘1左边键的字符,字段顺序与表头一致

  • 倒数第二行为资金账单统计标题

资金流水总笔数,收入笔数,收入金额,支出笔数,支出金额

  • 最后一行为统计数据

账单示例如下:

记账时间,微信支付业务单号,资金流水单号,业务名称,业务类型,收支类型,收支金额(元),账户结余(元),资金变更提交申请人,备注,业务凭证号

`2018-02-01 04:21:23,`50000305742018020103387128253,`1900009231201802015884652186,`退款,`退款,`支出,`0.02,`0.17,`system,`缺货,`REF4200000068201801293084726067

资金流水总笔数,收入笔数,收入金额,支出笔数,支出金额

`20.0,`17.0,`0.35,`3.0,`0.18

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.downloadFundflow({
    billDate: '20200202',
  })
  return res
}

支付结果通知处理

openapi.payment.verifyPaymentNotify,用于在使用云函数Url化的云函数内检验并处理支付结果。

入参说明

只接收对应云函数的event作为参数

返回值说明

参数名类型说明支持平台
totalFeeNumber订单总金额
cashFeeNumber现金支付金额
feeTypeString货币类别
outTradeNoString商户订单号
transactionIdString平台订单号
timeEndString支付完成时间,格式为yyyyMMddHHmmss
openidString用户id

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.verifyPaymentNotify(event)
  return res
}

退款结果通知

openapi.payment.verifyRefundNotify,用于在使用云函数Url化的云函数内检验并处理支付结果。

入参说明

只接收对应云函数的event作为参数

返回值说明

参数名类型说明支持平台
totalFeeNumber订单总金额
refundFeeNumber申请退款金额
settlementTotalFeeNumber应结订单金额
settlementRefundFeeNumber退款金额
outTradeNoString商户订单号
transactionIdString平台订单号
refundIdString平台退款单号
outRefundNoString商户退款单号
refundStatusStringSUCCESS-退款成功,CHANGE-退款异常,REFUNDCLOSE—退款关闭
refundAccountString退款资金来源
refundRecvAccoutString退款入账账户

使用示例

exports.main = async function(event) {
  let res = await openapi.payment.verifyRefundNotify(event)
  return res
}