Commit 179ac129 authored by xianjun's avatar xianjun

创建微信小程序接口文档

parent 7ab504bc
# auth.code2Session
> 本接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
登录凭证校验。通过 [wx.login](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html) 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使用方法详见 [小程序登录](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html)
### 请求地址
```text
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
```
### 请求参数
| 属性 | 类型 | 默认值 | 必填 | 说明 |
| :--------- | :----- | :----- | :--- | :---------------------------------------- |
| appid | string | | 是 | 小程序 appId |
| secret | string | | 是 | 小程序 appSecret |
| js_code | string | | 是 | 登录时获取的 code |
| grant_type | string | | 是 | 授权类型,此处只需填写 authorization_code |
### 返回值
### Object
返回的 JSON 数据包
| 属性 | 类型 | 说明 |
| :---------- | :----- | :----------------------------------------------------------- |
| openid | string | 用户唯一标识 |
| session_key | string | 会话密钥 |
| unionid | string | 用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 [UnionID 机制说明](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html)。 |
| errcode | number | 错误码 |
| errmsg | string | 错误信息 |
**errcode 的合法值**
| 值 | 说明 | 最低版本 |
| :---- | :----------------------------------------------------------- | :------- |
| -1 | 系统繁忙,此时请开发者稍候再试 | |
| 0 | 请求成功 | |
| 40029 | code 无效 | |
| 45011 | 频率限制,每个用户每分钟100次 | |
| 40226 | 高风险等级用户,小程序登录拦截 。风险等级详见[用户安全解方案](https://developers.weixin.qq.com/miniprogram/dev/framework/operation.html#%E7%94%A8%E6%88%B7%E5%AE%89%E5%85%A8%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88) | |
\ No newline at end of file
用户信息 /checkEncryptedData
# auth.checkEncryptedData
> 本接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
检查加密信息是否由微信生成(当前只支持手机号加密数据),只能检测最近3天生成的加密数据
调用方式:
- [HTTPS 调用](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/user-info/auth.checkEncryptedData.html#method-http)
- [云调用](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/user-info/auth.checkEncryptedData.html#method-cloud)
## HTTPS 调用
### 请求地址
```text
POST https://api.weixin.qq.com/wxa/business/checkencryptedmsg?access_token=ACCESS_TOKEN
```
### 请求参数
| 属性 | 类型 | 默认值 | 必填 | 说明 |
| :----------------- | :----- | :----- | :--- | :------------------------------------------------ |
| encrypted_msg_hash | string | | 是 | 加密数据的sha256,通过Hex(Base16)编码后的字符串 |
### 返回值
### Object
返回的 JSON 数据
| 属性 | 类型 | 说明 |
| :---------- | :------ | :------------------- |
| errcode | number | 错误码 |
| errmsg | string | 错误提示信息 |
| vaild | boolean | 是否是合法的数据 |
| create_time | number | 加密数据生成的时间戳 |
**errcode 的合法值**
| 值 | 说明 | 最低版本 |
| :---- | :----------------------------------------------------------- | :------- |
| 0 | 请求成功 | |
| -1 | 系统繁忙,此时请开发者稍候再试 | |
| 1 | 加密数据不存在,数据生成的时间超过保存的限制(3天)或者 key 不存在 | |
| 40097 | 请求里的encrypted_msg_hash参数无效 | |
| 44002 | 传入的数据为空 | |
| 47001 | 传入的数据格式错误 | |
### 调用示例
```text
加密数据为: hsSuSUsePBqSQw2rYMtf9Nvha603xX8f2BMQBcYRoJiMNwOqt/UEhrqekebG5ar0LFNAm5MD4Uz6zorRwiXJwbySJ/FEJHav4NsobBIU1PwdjbJWVQLFy7+YFkHB32OnQXWMh6ugW7Dyk2KS5BXp1f5lniKPp1KNLyNLlFlNZ2mgJCJmWvHj5AI7BLpWwoRvqRyZvVXo+9FsWqvBdxmAPA==
sha256: 657edd868c9715a9bebe42b833269a557a48498785397a796f1568c29a200b2c
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"encrypted_msg_hash": "657edd868c9715a9bebe42b833269a557a48498785397a796f1568c29a200b2c"}' http://api.weixin.qq.com/wxa/business/checkencryptedmsg?access_token=ACCESS_TOKEN
```
### 返回结果示例
```json
{
"errcode": 0,
"errmsg": "ok",
"vaild": true,
"create_time" :1629121902
}
```
## 云调用
> [云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)是微信云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 `wx-server-sdk` 使用。
### 接口方法
```js
openapi.auth.checkEncryptedData
```
> 需在 `config.json` 中配置 `auth.checkEncryptedData` API 的权限,[详情](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html#usage-3)
### 请求参数
| 属性 | 类型 | 默认值 | 必填 | 说明 |
| :--------------- | :----- | :----- | :--- | :------------------------------------------------ |
| encryptedMsgHash | string | | 是 | 加密数据的sha256,通过Hex(Base16)编码后的字符串 |
### 返回值
### Object
返回的 JSON 数据
| 属性 | 类型 | 说明 |
| :--------- | :------ | :------------------- |
| errCode | number | 错误码 |
| errMsg | string | 错误提示信息 |
| vaild | boolean | 是否是合法的数据 |
| createTime | number | 加密数据生成的时间戳 |
**errCode 的合法值**
| 值 | 说明 | 最低版本 |
| :--- | :--- | :------- |
| 0 | 成功 | |
### 异常
### Object
抛出的异常
| 属性 | 类型 | 说明 |
| :------ | :----- | :----------- |
| errCode | number | 错误码 |
| errMsg | string | 错误提示信息 |
**errCode 的合法值**
| 值 | 说明 | 最低版本 |
| :---- | :----------------------------------------------------------- | :------- |
| -1 | 系统繁忙,此时请开发者稍候再试 | |
| 1 | 加密数据不存在,数据生成的时间超过保存的限制(3天)或者 key 不存在 | |
| 40097 | 请求里的encrypted_msg_hash参数无效 | |
| 44002 | 传入的数据为空 | |
| 47001 | 传入的数据格式错误 | |
\ No newline at end of file
...@@ -47,6 +47,18 @@ public class WxXcxConfig { ...@@ -47,6 +47,18 @@ public class WxXcxConfig {
@Value("${yzg.wx.xcx.authGetPaidUnionId:/wxa/getpaidunionid}") @Value("${yzg.wx.xcx.authGetPaidUnionId:/wxa/getpaidunionid}")
private String authGetPaidUnionId; private String authGetPaidUnionId;
/**
* 用户支付完成后,获取该用户的 UnionId
*/
@Value("${yzg.wx.xcx.getUserEncryptKey:/wxa/business/getuserencryptkey}")
private String getUserEncryptKey;
/**
* 用户支付完成后,获取该用户的 UnionId
*/
@Value("${yzg.wx.xcx.getPhoneNumber:/wxa/business/getuserphonenumber}")
private String getPhoneNumber;
/** /**
* 换取插件用户的唯一标识 openpid * 换取插件用户的唯一标识 openpid
*/ */
...@@ -306,6 +318,14 @@ public class WxXcxConfig { ...@@ -306,6 +318,14 @@ public class WxXcxConfig {
@Value("${yzg.wx.xcx.clearQuota:/cgi-bin/openapi/rid/get}") @Value("${yzg.wx.xcx.clearQuota:/cgi-bin/openapi/rid/get}")
private String getRidInfo; private String getRidInfo;
public String getGetPhoneNumber() {
return getPhoneNumber;
}
public String getGetUserEncryptKey() {
return getUserEncryptKey;
}
public String getGetApiQuota() { public String getGetApiQuota() {
return getApiQuota; return getApiQuota;
} }
......
package com.yanzuoguang.wxxcx.urllink; package com.yanzuoguang.wxxcx.codeorlink.urllink;
/** /**
* 获取小程序 URL Link 请求 * 获取小程序 URL Link 请求
......
package com.yanzuoguang.wxxcx.urllink; package com.yanzuoguang.wxxcx.codeorlink.urllink;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.urllink; package com.yanzuoguang.wxxcx.codeorlink.urllink;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
package com.yanzuoguang.wxxcx.urllink; package com.yanzuoguang.wxxcx.codeorlink.urllink;
/** /**
* 查询小程序 url_link 配置 请求 * 查询小程序 url_link 配置 请求
......
package com.yanzuoguang.wxxcx.urllink; package com.yanzuoguang.wxxcx.codeorlink.urllink;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.urllink; package com.yanzuoguang.wxxcx.codeorlink.urllink;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
小程序码与小程序链接 /URL Link /查询 URL Link
# 查询 URL Link
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
## 接口说明
### 接口英文名
queryUrlLink
### 功能描述
该接口用于查询小程序 url_link 配置,及长期有效 quota
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/wxa/query_urllink?access_token=ACCESS_TOKEN
```
### 云调用
- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.urllink.query
### 第三方调用
- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:88、115
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用
### 请求参数
| 属性 | 类型 | 必填 | 说明 |
| :------------------------------------ | :----- | :--- | :----------------------------------------------------------- |
| access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html); cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html)接口获得 |
| url_link | string | 否 | 小程序 url_link |
### 返回参数
| | 属性 | 类型 | 说明 |
| :--- | :----------------------------------------------------------- | :----- | :------------ |
| | errcode | number | 错误码 |
| | errmsg | string | 错误信息 |
| | url_link_info | object | url_link 配置 |
| | 属性类型说明appidstring小程序 appidpathstring小程序页面路径querystring小程序页面querycreate_timenumber创建时间,为 Unix 时间戳expire_timenumber到期失效时间,为 Unix 时间戳,0 表示永久生效env_versionstring要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop" | | |
| | url_link_quota | object | quota 配置 |
| | 属性类型说明long_time_usednumber长期有效 url_link 已生成次数long_time_limitnumber长期有效 url_link 生成次数上限 | | |
| | visit_openid | string | |
## 调用示例
> 示例说明: HTTPS调用示例
### 请求数据示例
```json
{
"url_link": "https://wxaurl.cn/BQZRrcFCPvg"
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"url_link_info": {
"appid": "appid",
"path": "",
"query": "",
"create_time": 611928113,
"expire_time": 0,
"env_version": "release",
"cloud_base" : {
"env": "",
"doamin": "",
"path": "",
"query": "",
"resource_appid": ""
}
},
"url_link_quota": {
"long_time_used": 100,
"long_time_limit": 100000
}
}
```
> 示例说明: 云函数调用
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.urllink.query({
"urlLink": 'https://wxaurl.cn/BQZRrcFCPvg'
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"urlLinkInfo": {
"appid": "appid",
"path": "",
"query": "",
"createTime": 611928113,
"expireTime": 0,
"envVersion": "release",
"cloudBase" : {
"env": "",
"doamin": "",
"path": "",
"query": "",
"resourceAppid": ""
}
},
"urlLinkQuota": {
"longTimeUsed": 100,
"longTimeLimit": 100000
}
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :----------- | :----------------------------- |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 40097 | invalid args | 参数错误 |
| 85403 | not found | scheme/url link不存在 |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
package com.yanzuoguang.wxxcx.urllink.service; package com.yanzuoguang.wxxcx.codeorlink.urllink.service;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkGenerateReq; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkGenerateReq;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkGenerateRes; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkGenerateRes;
/** /**
* 获取小程序 URL Link 接口 * 获取小程序 URL Link 接口
......
package com.yanzuoguang.wxxcx.urllink.service; package com.yanzuoguang.wxxcx.codeorlink.urllink.service;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkQueryReq; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkQueryReq;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkQueryRes; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkQueryRes;
/** /**
* 查询小程序 url_link 配置 接口 * 查询小程序 url_link 配置 接口
......
package com.yanzuoguang.wxxcx.urllink.service.impl; package com.yanzuoguang.wxxcx.codeorlink.urllink.service.impl;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkGenerateReq; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkGenerateReq;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkGenerateRequest; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkGenerateRequest;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkGenerateRes; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkGenerateRes;
import com.yanzuoguang.wxxcx.urllink.service.WxXcxUrlLinkGenerateService; import com.yanzuoguang.wxxcx.codeorlink.urllink.service.WxXcxUrlLinkGenerateService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
......
package com.yanzuoguang.wxxcx.urllink.service.impl; package com.yanzuoguang.wxxcx.codeorlink.urllink.service.impl;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkQueryReq; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkQueryReq;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkQueryRequest; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkQueryRequest;
import com.yanzuoguang.wxxcx.urllink.WxXcxUrlLinkQueryRes; import com.yanzuoguang.wxxcx.codeorlink.urllink.WxXcxUrlLinkQueryRes;
import com.yanzuoguang.wxxcx.urllink.service.WxXcxUrlLinkQueryService; import com.yanzuoguang.wxxcx.codeorlink.urllink.service.WxXcxUrlLinkQueryService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
/** /**
* 获取小程序 scheme 码,适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。目前仅针对国内非个人主体的小程序开放 * 获取小程序 scheme 码,适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。目前仅针对国内非个人主体的小程序开放
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
/** /**
* 获取用于 NFC 的小程序 scheme 码 请求 * 获取用于 NFC 的小程序 scheme 码 请求
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
/** /**
* 获取小程序 scheme 码 请求 * 获取小程序 scheme 码 请求
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
......
package com.yanzuoguang.wxxcx.urlscheme; package com.yanzuoguang.wxxcx.codeorlink.urlscheme;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
小程序码与小程序链接 /URL Scheme /获取 NFC 的小程序 scheme
# 获取 NFC 的小程序 scheme
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
## 接口说明
### 接口英文名
generateNFCScheme
### 功能描述
该接口用于获取用于 NFC 的小程序 scheme 码,适用于 NFC 拉起小程序的业务场景。目前仅针对国内非个人主体的小程序开放,详见 [NFC 标签打开小程序](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/NFC.html)
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/wxa/generatenfcscheme?access_token=ACCESS_TOKEN
```
### 请求参数
| | 属性 | 类型 | 必填 | 说明 |
| :--- | :----------------------------------------------------------- | :----- | :--- | :----------------------------------------------------------- |
| | access_token / cloudbase_access_token | string | 是 | 接口调用凭证,access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html) 接口获得 |
| | jump_wxa | object | 否 | 跳转到的目标小程序信息。 |
| | 属性类型必填说明pathstring否通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页querystring否通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%``env_versionstring否要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop",仅在微信外打开时生效 | | | |
| | model_id | string | 是 | scheme对应的设备model_id |
| | sn | string | 否 | scheme对应的设备sn,仅一机一码时填写 |
### 返回参数
| 属性 | 类型 | 说明 |
| :------- | :----- | :--------------------- |
| errcode | number | 错误码 |
| errmsg | string | 错误信息 |
| openlink | string | 生成的小程序 scheme 码 |
## 调用示例
> 示例说明: HTTPS请求
### 请求数据示例
```json
{
"jump_wxa":
{
"path": "/pages/publishHomework/publishHomework",
"query": ""
},
"sn": "xxx",
"model_id": "xxx"
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"openlink": "Scheme"
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :------ | :----------------------------------------------------------- | :---------------------------------------------------------- |
| 40002 | 暂无生成权限(非个人主体小程序无权限,未申请 NFC 能力的小程序无权限) | |
| 40013 | 生成权限被封禁 | |
| 85079 | miniprogram has no online release | 小程序没有线上版本,即小程序尚未发布,不可进行该操作 |
| 40165 | invalid weapp pagepath | 参数 path 填写错误,更正后重试 |
| 40212 | invalid query | 参数 query 填写错误 ,query格式遵循 URL 标准,即k1=v1&k2=v2 |
| 85402 | invalid env_version | 参数env_version填写错误,更正后重试 |
| 44990 | reach max api second frequence limit | 频率过快,超过100次/秒;降低调用频率 |
| 44993 | reach max api day frequence limit | 单天生成Scheme+URL Link数量超过上限50万 |
| 9800003 | model_id检查不通过 | |
| 9800007 | 此model_id尚未获得该能力,请能力申请通过后再试 | |
| 9800008 | 能力类型为一机一码,sn不能为空 | |
| 9800009 | 能力类型为一型一码,sn需为空 | |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
小程序码与小程序链接 /URL Scheme /获取scheme码
# 获取 scheme 码
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
## 接口说明
### 接口英文名
generateScheme
### 功能描述
- 该接口用于获取小程序 scheme 码,适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久有效的小程序码,有数量限制,目前仅针对国内非个人主体的小程序开放,详见[获取 URL scheme](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html)
### 注意事项
#### 调用上限
Scheme 将根据是否为到期有效与失效时间参数,分为短期有效 Scheme 与长期有效Scheme:
- 单个小程序每日生成 Scheme 上限为50万个(包含短期有效 Scheme 与长期有效 Scheme)
- 有效时间超过180天的 Scheme 或永久有效的 Scheme 为长期有效Scheme,单个小程序总共可生成长期有效 Scheme 上限为10万个,请谨慎调用
- 有效时间不超过180天的 Scheme 为短期有效Scheme,单个小程序生成短期有效 Scheme 不设上限
### 其他注意事项
- 微信内的网页如需打开小程序请使用微信开放标签 - 小程序跳转按钮,无公众号也可以直接使用小程序身份开发网页并免鉴权跳转小程序,见云开发静态网站跳转小程序。符合开放范围的小程序可以下发支持打开小程序的短信
- 该功能基本覆盖当前用户正在使用的微信版本,开发者无需进行低版本兼容
- 只能生成已发布的小程序的 URL Scheme
- 通过 URL Scheme 跳转到微信时,可能会触发系统弹框询问,若用户选择不跳转,则无法打开小程序。请开发者妥善处理用户选择不跳转的场景
- 部分浏览器会限制打开网页直接跳转,可参考示例网页设置跳转按钮
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
```
### 云调用
- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.urlscheme.generate
### 第三方调用
- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:88、115
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用
### 请求参数
| | 属性 | 类型 | 必填 | 说明 |
| :--- | :----------------------------------------------------------- | :------ | :--- | :----------------------------------------------------------- |
| | access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html) ; cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html) 接口获得 |
| | jump_wxa | object | 否 | 跳转到的目标小程序信息。 |
| | 属性类型必填说明pathstring否通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页。querystring否通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%``env_versionstring否默认值"release"。要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop",仅在微信外打开时生效。 | | | |
| | is_expire | boolean | 否 | 默认值false。生成的 scheme 码类型,到期失效:true,永久有效:false。注意,永久有效 scheme 和有效时间超过180天的到期失效 scheme 的总数上限为10万个,详见[获取 URL scheme](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html),生成 scheme 码前请仔细确认。 |
| | expire_time | number | 否 | 到期失效的 scheme 码的失效时间,为 Unix 时间戳。生成的到期失效 scheme 码在该时间前有效。最长有效期为1年。is_expire 为 true 且 expire_type 为 0 时必填 |
| | expire_type | number | 否 | 默认值0,到期失效的 scheme 码失效类型,失效时间:0,失效间隔天数:1 |
| | expire_interval | number | 否 | 到期失效的 scheme 码的失效间隔天数。生成的到期失效 scheme 码在该间隔时间到达前有效。最长间隔天数为365天。is_expire 为 true 且 expire_type 为 1 时必填 |
### 返回参数
| 属性 | 类型 | 说明 |
| :------- | :----- | :--------------------- |
| errcode | number | 错误码 |
| errmsg | string | 错误信息 |
| openlink | string | 生成的小程序 scheme 码 |
## 调用示例
> 示例说明: HTTPS请求
### 请求数据示例
```json
{
"jump_wxa":
{
"path": "/pages/publishHomework/publishHomework",
"query": ""
},
"is_expire":true,
"expire_time":1606737600
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"openlink": "Scheme"
}
```
> 示例说明: 云函数调用
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.urlscheme.generate({
"jumpWxa": {
"path": '/pages/publishHomework/publishHomework',
"query": ''
},
"isExpire": true,
"expireTime": 1606737600
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"openlink": "Scheme"
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :------------------------------------------------------ | :----------------------------------------------------------- |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 40001 | invalid credential access_token isinvalid or not latest | 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口 |
| 85079 | miniprogram has no online release | 小程序没有线上版本,不能进行灰度 |
| 40165 | invalid weapp pagepath | 参数 path 填写错误,更正后重试 |
| 40212 | invalid query | 参数 query 填写错误 ,query格式遵循 URL 标准,即k1=v1&k2=v2 |
| 85401 | time limit between 1min and 1year | 参数expire_time填写错误,时间间隔大于1分钟且小于1年,更正后重试 |
| 85402 | invalid env_version | 参数env_version填写错误,更正后重试 |
| 44990 | reach max api second frequence limit | 频率过快,超过100次/秒;降低调用频率 |
| 85400 | reach max long time quota limit | 长期有效 Scheme 达到生成上限10万,不可再生成。 |
| 45009 | reach max api daily quota limit | 调用超过天级别频率限制。可调用clear_quota接口恢复调用额度。 |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
小程序码与小程序链接 /URL Scheme /查询scheme码
# 查询 scheme 码
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
## 接口说明
### 接口英文名
queryScheme
### 功能描述
该接口用于查询小程序 scheme 码,及长期有效 quota。
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/wxa/queryscheme?access_token=ACCESS_TOKEN
```
### 云调用
- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.urlscheme.query
### 第三方调用
- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:88、115
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用
### 请求参数
| 属性 | 类型 | 必填 | 说明 |
| :------------------------------------ | :----- | :--- | :----------------------------------------------------------- |
| access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html); cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html)接口获得 |
| scheme | string | 是 | 小程序 scheme 码 |
### 返回参数
| | 属性 | 类型 | 说明 |
| :--- | :----------------------------------------------------------- | :----- | :---------- |
| | errcode | number | 错误码 |
| | errmsg | string | 错误信息 |
| | scheme_info | object | scheme 配置 |
| | 属性类型说明appidstring小程序 appidpathstring小程序页面路径querystring小程序页面querycreate_timenumber创建时间,为 Unix 时间戳expire_timenumber到期失效时间,为 Unix 时间戳,0 表示永久生效env_versionstring要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop" | | |
| | scheme_quota | object | quota 配置 |
| | 属性类型说明long_time_usednumber长期有效 scheme 已生成次数long_time_limitnumber长期有效 scheme 生成次数上限 | | |
## 调用示例
> 示例说明: HTTPS请求示例
### 请求数据示例
```json
{
"scheme": "weixin://dl/business/?t=XTSkBZlzqmn"
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"scheme_info": {
"appid": "appid",
"path": "",
"query": "",
"create_time": 611928113,
"expire_time": 0,
"env_version": "release"
},
"scheme_quota": {
"long_time_used": 100,
"long_time_limit": 100000
}
}
```
> 示例说明: 云函数调用示例
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.urlscheme.query({
"scheme": 'weixin://dl/business/?t=XTSkBZlzqmn'
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"errCode": 0,
"errMsg": "ok",
"schemeInfo": {
"appid": "appid",
"path": "",
"query": "",
"createTime": 611928113,
"expireTime": 0,
"envVersion": "release"
},
"schemeQuota": {
"longTimeUsed": 100,
"longTimeLimit": 100000
}
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :----------- | :----------------------------- |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 85403 | not found | scheme/url link不存在 |
| 40097 | invalid args | 参数错误 |
| 0 | ok | ok |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
package com.yanzuoguang.wxxcx.urlscheme.service; package com.yanzuoguang.wxxcx.codeorlink.urlscheme.service;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateNfcReq; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateNfcReq;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateNfcRes; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateNfcRes;
/** /**
* 获取用于 NFC 的小程序 scheme 码 接口 * 获取用于 NFC 的小程序 scheme 码 接口
......
package com.yanzuoguang.wxxcx.urlscheme.service; package com.yanzuoguang.wxxcx.codeorlink.urlscheme.service;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateReq; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateReq;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateRes; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateRes;
/** /**
* 获取小程序 scheme 码 接口 * 获取小程序 scheme 码 接口
......
package com.yanzuoguang.wxxcx.urlscheme.service; package com.yanzuoguang.wxxcx.codeorlink.urlscheme.service;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeQueryReq; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeQueryReq;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeQueryRes; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeQueryRes;
/** /**
* 查询小程序 scheme 码 接口 * 查询小程序 scheme 码 接口
......
package com.yanzuoguang.wxxcx.urlscheme.service.impl; package com.yanzuoguang.wxxcx.codeorlink.urlscheme.service.impl;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateNfcReq; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateNfcReq;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateNfcRequest; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateNfcRequest;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateNfcRes; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateNfcRes;
import com.yanzuoguang.wxxcx.urlscheme.service.WxXcxUrlSchemeGenerateNfcService; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.service.WxXcxUrlSchemeGenerateNfcService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
......
package com.yanzuoguang.wxxcx.urlscheme.service.impl; package com.yanzuoguang.wxxcx.codeorlink.urlscheme.service.impl;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateReq; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateReq;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateRequest; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateRequest;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeGenerateRes; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeGenerateRes;
import com.yanzuoguang.wxxcx.urlscheme.service.WxXcxUrlSchemeGenerateService; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.service.WxXcxUrlSchemeGenerateService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
......
package com.yanzuoguang.wxxcx.urlscheme.service.impl; package com.yanzuoguang.wxxcx.codeorlink.urlscheme.service.impl;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeQueryReq; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeQueryReq;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeQueryRequest; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeQueryRequest;
import com.yanzuoguang.wxxcx.urlscheme.WxXcxUrlSchemeQueryRes; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.WxXcxUrlSchemeQueryRes;
import com.yanzuoguang.wxxcx.urlscheme.service.WxXcxUrlSchemeQueryService; import com.yanzuoguang.wxxcx.codeorlink.urlscheme.service.WxXcxUrlSchemeQueryService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
/** /**
* auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示 * auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
/** /**
* 获取小程序码 请求 * 获取小程序码 请求
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
/** /**
* 获取小程序码 请求 * 获取小程序码 请求
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.wxacode; package com.yanzuoguang.wxxcx.codeorlink.wxacode;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
小程序码与小程序链接 /小程序码 /获取小程序二维码
# 获取小程序二维码
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
## 接口说明
### 接口英文名
createQRCode
### 功能描述
获取小程序二维码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制,详见[获取二维码](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html)
### 注意事项
- POST 参数需要转成 JSON 字符串,不支持 form 表单提交。
- 接口只能生成已发布的小程序的二维码。开发版的带参二维码可以在开发者工具预览时生成。
-[wxacode.get](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.html) 总共生成的码数量限制为 100,000,请谨慎调用。
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN
```
### 云调用
- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.wxacode.create
### 第三方调用
- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:17、58
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用
### 请求参数
| 属性 | 类型 | 必填 | 说明 |
| :------------------------------------ | :----- | :--- | :----------------------------------------------------------- |
| access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html); cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html)接口获得 |
| path | string | 是 | 扫码进入的小程序页面路径,最大长度 128 字节,不能为空;对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar",即可在 wx.getLaunchOptionsSync 接口中的 query 参数获取到 {foo:"bar"}。 |
| width | number | 否 | 二维码的宽度,单位 px。最小 280px,最大 1280px;默认是430 |
### 返回参数
| 属性 | 类型 | 说明 |
| :---------- | :----- | :---------- |
| buffer | Buffer | 图片 Buffer |
| contentType | string | contentType |
| errcode | int | 错误码 |
| errmsg | string | 错误信息 |
## 调用示例
> 示例说明: HTTPS调用示例
### 请求数据示例
```json
{
"path":"page/index/index",
"width":430
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"contentType": "image/jpeg",
"buffer": "Buffer"
}
```
> 示例说明: 云调用示例
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.wxacode.createQRCode({
"path": 'page/index/index',
"width": 430
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"contentType": "image/jpeg",
"buffer": "Buffer"
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :------------------------ | :----------------------------- |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 45029 | qrcode count out of limit | 生成码个数总和到达最大个数限制 |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
小程序码与小程序链接 /小程序码 /获取小程序码
# 获取小程序码
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
## 接口说明
### 接口英文名
getQRCode
### 功能描述
该接口用于获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制,详见[获取小程序码](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html)
### 注意事项
- 如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回 JSON 格式的数据。
- POST 参数需要转成 JSON 字符串,不支持 form 表单提交。
- 接口只能生成已发布的小程序码
- 与 createQRCode 总共生成的码数量限制为 100,000,请谨慎调用。
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
```
### 云调用
- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.wxacode.get
### 第三方调用
- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:17、58
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用
### 请求参数
| | 属性 | 类型 | 必填 | 说明 |
| :--- | :----------------------------------------------------------- | :------ | :--- | :----------------------------------------------------------- |
| | access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html) ; cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html) 接口获得 |
| | path | string | 是 | 扫码进入的小程序页面路径,最大长度 128 字节,不能为空;对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar",即可在 wx.getLaunchOptionsSync 接口中的 query 参数获取到 {foo:"bar"}。 |
| | width | number | 否 | 二维码的宽度,单位 px。默认值为430,最小 280px,最大 1280px |
| | auto_color | boolean | 否 | 默认值false;自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 |
| | line_color | object | 否 | 默认值{"r":0,"g":0,"b":0} ;auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示 |
| | 属性类型必填说明r是默认值{"r":0,"g":0,"b":0} ;auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示g是默认值{"r":0,"g":0,"b":0} ;auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示b是默认值{"r":0,"g":0,"b":0} ;auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示 | | | |
| | is_hyaline | boolean | 否 | 默认值false;是否需要透明底色,为 true 时,生成透明底色的小程序码 |
### 返回参数
| 属性 | 类型 | 说明 |
| :------ | :----- | :---------------------- |
| buffer | Buffer | 成功时返回的图片 Buffer |
| errcode | number | 失败时返回错误码 |
| errmsg | string | 失败时返回错误信息 |
## 调用示例
> 示例说明: HTTPS调用
### 请求数据示例
```json
{
"path":"funpackage/questionsWall/questionInfo?question_id=22579",
"width":280
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"contentType": "image/jpeg",
"buffer": "Buffer"
}
```
> 示例说明: 云函数调用
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.wxacode.get({
"path": 'page/index/index',
"width": 430
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"contentType": "image/jpeg",
"buffer": "Buffer"
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :------------------------------------------------------ | :----------------------------------------------------------- |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 40001 | invalid credential access_token isinvalid or not latest | 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口 |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
小程序码与小程序链接 /小程序码 /获取不限制的小程序码
# 获取不限制的小程序码
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
## 接口说明
### 接口英文名
getUnlimitedQRCode
### 功能描述
该接口用于获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制。 更多用法详见 [获取小程序码](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html)
### 注意事项
- 如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回 JSON 格式的数据。
- POST 参数需要转成 JSON 字符串,不支持 form 表单提交。
- 接口只能生成已发布的小程序码
- 调用分钟频率受限(5000次/分钟),如需大量小程序码,建议预生成
#### 获取 scene 值
- scene 字段的值会作为 query 参数传递给小程序/小游戏。用户扫描该码进入小程序/小游戏后,开发者可以获取到二维码中的 scene 值,再做处理逻辑。
- 调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟,开发工具模拟时的 scene 的参数值需要进行 encodeURIComponent
##### 小程序
```text
Page({
onLoad (query) {
// scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
const scene = decodeURIComponent(query.scene)
}
})
```
##### 小游戏
```text
// 在首次启动时通过 wx.getLaunchOptionsSync 接口获取
const {query} = wx.getLaunchOptionsSync()
const scene = decodeURIComponent(query.scene)
// 或者在 wx.onShow 事件中获取
wx.onShow(function ({query}) {
// scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
const scene = decodeURIComponent(query.scene)
})
```
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
```
### 云调用
- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.wxacode.getUnlimited
### 第三方调用
- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:17、58
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用
### 请求参数
| | 属性 | 类型 | 必填 | 说明 |
| :--- | :------------------------------------ | :----- | :--- | :----------------------------------------------------------- |
| | access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html) ; cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html) 接口获得 |
| | scene | string | 是 | 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式) |
| | page | string | 否 | 默认是主页,页面 page,例如 pages/index/index,根路径前不要填加 /,不能携带参数(参数请放在 scene 字段里),如果不填写这个字段,默认跳主页面。 |
| | check_path | bool | 否 | 默认是true,检查page 是否存在,为 true 时 page 必须是已经发布的小程序存在的页面(否则报错);为 false 时允许小程序未发布或者 page 不存在, 但page 有数量上限(60000个)请勿滥用。 |
| | env_version | string | 否 | 要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。 |
| | width | number | 否 | 默认430,二维码的宽度,单位 px,最小 280px,最大 1280px |
| | auto_color | bool | 否 | 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false |
| | line_color | object | 否 | 默认是{"r":0,"g":0,"b":0} 。auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示 |
| | 属性类型必填说明 | | | |
| | is_hyaline | bool | 否 | 默认是false,是否需要透明底色,为 true 时,生成透明底色的小程序 |
### 返回参数
| 属性 | 类型 | 说明 |
| :------ | :----- | :---------------------- |
| buffer | Buffer | 成功时返回的图片 Buffer |
| errcode | number | 失败时返回错误码 |
| errmsg | string | 失败时返回错误信息 |
## 调用示例
> 示例说明: HTTPS调用
### 请求数据示例
```json
{
"page": "pages/index/index",
"scene": "a=1",
"check_path": true,
"env_version": "release"
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"contentType": "image/jpeg",
"buffer": "Buffer"
}
```
> 示例说明: 云函数调用
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.wxacode.getUnlimited({
"page": 'pages/index/index',
"scene": 'a=1',
"checkPath": true,
"envVersion": 'release'
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"contentType": "image/jpeg",
"buffer": "Buffer"
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :------------------------------------------------------ | :----------------------------------------------------------- |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 40001 | invalid credential access_token isinvalid or not latest | 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口 |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
package com.yanzuoguang.wxxcx.wxacode.service; package com.yanzuoguang.wxxcx.codeorlink.wxacode.service;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeCreateQrCodeReq; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeCreateQrCodeReq;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeCreateQrCodeRes; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeCreateQrCodeRes;
/** /**
* 获取小程序二维码 接口 * 获取小程序二维码 接口
......
package com.yanzuoguang.wxxcx.wxacode.service; package com.yanzuoguang.wxxcx.codeorlink.wxacode.service;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetReq; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetReq;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetRes; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetRes;
/** /**
* 获取小程序码 接口 * 获取小程序码 接口
......
package com.yanzuoguang.wxxcx.wxacode.service; package com.yanzuoguang.wxxcx.codeorlink.wxacode.service;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetUnlimitedReq; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetUnlimitedReq;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetUnlimitedRes; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetUnlimitedRes;
/** /**
* 获取小程序码 接口 * 获取小程序码 接口
......
package com.yanzuoguang.wxxcx.wxacode.service.impl; package com.yanzuoguang.wxxcx.codeorlink.wxacode.service.impl;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeCreateQrCodeReq; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeCreateQrCodeReq;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeCreateQrCodeRequest; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeCreateQrCodeRequest;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeCreateQrCodeRes; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeCreateQrCodeRes;
import com.yanzuoguang.wxxcx.wxacode.service.WxXcxWxaCodeCreateQrCodeService; import com.yanzuoguang.wxxcx.codeorlink.wxacode.service.WxXcxWxaCodeCreateQrCodeService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
......
package com.yanzuoguang.wxxcx.wxacode.service.impl; package com.yanzuoguang.wxxcx.codeorlink.wxacode.service.impl;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetReq; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetReq;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetRequest; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetRequest;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetRes; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetRes;
import com.yanzuoguang.wxxcx.wxacode.service.WxXcxWxaCodeGetService; import com.yanzuoguang.wxxcx.codeorlink.wxacode.service.WxXcxWxaCodeGetService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
......
package com.yanzuoguang.wxxcx.wxacode.service.impl; package com.yanzuoguang.wxxcx.codeorlink.wxacode.service.impl;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetUnlimitedReq; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetUnlimitedReq;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetUnlimitedRequest; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetUnlimitedRequest;
import com.yanzuoguang.wxxcx.wxacode.WxXcxWxaCodeGetUnlimitedRes; import com.yanzuoguang.wxxcx.codeorlink.wxacode.WxXcxWxaCodeGetUnlimitedRes;
import com.yanzuoguang.wxxcx.wxacode.service.WxXcxWxaCodeGetUnlimitedService; import com.yanzuoguang.wxxcx.codeorlink.wxacode.service.WxXcxWxaCodeGetUnlimitedService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
......
package com.yanzuoguang.wxxcx.analysis.data; package com.yanzuoguang.wxxcx.dataanalysis.data;
/** /**
* 按时间排列的性能数据 * 按时间排列的性能数据
......
package com.yanzuoguang.wxxcx.analysis.data; package com.yanzuoguang.wxxcx.dataanalysis.data;
/** /**
* 获取小程序启动性能,运行性能等数据 请求 * 获取小程序启动性能,运行性能等数据 请求
......
package com.yanzuoguang.wxxcx.analysis.data; package com.yanzuoguang.wxxcx.dataanalysis.data;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.analysis.data; package com.yanzuoguang.wxxcx.dataanalysis.data;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
数据分析 /其他 /获取小程序性能数据
# 获取小程序性能数据
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
## 接口说明
### 接口英文名
getPerformanceData
### 功能描述
该接口用于获取小程序启动性能,运行性能等数据。
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/wxa/business/performance/boot?access_token=ACCESS_TOKEN
```
### 请求参数
| | 属性 | 类型 | 必填 | 说明 |
| :--- | :----------------------------------------------------------- | :------------ | :--- | :----------------------------------------------------------- |
| | access_token / cloudbase_access_token | string | 是 | 接口调用凭证,access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html) 接口获得 |
| | module | number | 是 | 查询数据的类型 |
| | time | object | 是 | 开始和结束日期的时间戳,时间跨度不能超过30天 |
| | 属性类型必填说明begin_timestampnumber是开始日期时间戳end_timestampnumber是结束日期时间戳 | | | |
| | params | array<object> | 是 | 查询条件,比如机型,网络类型等等 |
| | 属性类型必填说明fieldstring是查询条件valuestring是查询条件值 | | | |
### 返回参数
| | 属性 | 类型 | 说明 |
| :--- | :----------------------------------------------------------- | :----- | :------------- |
| | errcode | number | 错误码 |
| | errmsg | string | 错误信息 |
| | data | object | 返回的性能数据 |
| | 属性类型说明bodyobject返回的性能数据属性类型说明tablesarray<object>返回的数据数组属性类型说明idstring性能数据指标idlinesarray<object>按时间排列的性能数据属性类型说明fieldsarray<object>单天的性能数据属性类型说明refdatestring日期valuestring性能数据值zhstring性能数据指标中文名countnumber数组大小 | | |
## 其他说明
### module 的合法值
| 值 | 说明 |
| :---- | :--------------------------------------------- |
| 10016 | 打开率, params字段可传入网络类型和机型 |
| 10017 | 启动各阶段耗时,params字段可传入网络类型和机型 |
| 10021 | 页面切换耗时,params数组字段可传入机型 |
| 10022 | 内存指标,params数组字段可传入机型 |
| 10023 | 内存异常,params数组字段可传入机型 |
### field 的合法值
| 值 | 说明 |
| :----------- | :----------------------------------------------------------- |
| networktype | 网络类型作为查询条件,value=“-1,3g,4g,wifi”分别表示 全部网络类型,3G,4G,WIFI,不传 networktype 默认为全部网络类型 |
| device_level | 机型作为查询条件,此时value=“-1,1,2,3”分别表示 全部机型,高档机,中档机,低档机,不传device_level默认为全部机型 |
| device | 平台作为查询条件,此时value="-1,1,2"分别表示 全部平台,IOS平台,安卓平台,不传 device 默认为全部平台 |
## 调用示例
> 示例说明: HTTPS调用
### 请求数据示例
```json
{
"time": {
"end_timestamp": 1609689600,
"begin_timestamp": 1609603200
},
"module": "10022",
"params": [{
"field": "networktype",
"value": "wifi"
}, {
"field": "device_level",
"value": "1"
}, {
"field": "device",
"value": "1"
}]
}
```
### 返回数据示例
```json
{
"errcode": 0,
"errmsg": "ok",
"data": {
"body": {
"tables": [
{
"id": "memorydiff",
"lines": [
{
"fields": [
{
"refdate": "20210103",
"value": "70.7778"
},
{
"refdate": "20210104",
"value": "72.0446"
}
]
}
],
"zh": "内存增长均值"
},
{
"id": "memory",
"lines": [
{
"fields": [
{
"refdate": "20210103",
"value": "314"
},
{
"refdate": "20210104",
"value": "302.3218"
}
]
}
],
"zh": "内存均值"
}
],
"count": 2
}
}
}
```
> 示例说明: 云函数调用
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.analysis.getPerformanceData({
"time": {
"endTimestamp": 1609689600,
"beginTimestamp": 1609603200
},
"module": '10022',
"params": [
{
"field": 'networktype',
"value": 'wifi'
},
{
"field": 'device_level',
"value": '1'
},
{
"field": 'device',
"value": '1'
}
]
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"errCode": 0,
"errMsg": "openapi.analysis.getPerformanceData:ok",
"data": {
"body": {
"tables": [
{
"id": "memorydiff",
"lines": [
{
"fields": [
{
"refdate": "20210103",
"value": "70.7778"
},
{
"refdate": "20210104",
"value": "72.0446"
}
]
}
],
"zh": "内存增长均值"
},
{
"id": "memory",
"lines": [
{
"fields": [
{
"refdate": "20210103",
"value": "314"
},
{
"refdate": "20210104",
"value": "302.3218"
}
]
}
],
"zh": "内存均值"
}
],
"count": 2
}
}
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :------------------------------------------------------ | :----------------------------------------------------------- |
| 40001 | invalid credential access_token isinvalid or not latest | 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口 |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
package com.yanzuoguang.wxxcx.analysis.data.service; package com.yanzuoguang.wxxcx.dataanalysis.data.service;
import com.yanzuoguang.wxxcx.analysis.data.WxXcxAnalysisGetPerformanceDataReq; import com.yanzuoguang.wxxcx.dataanalysis.data.WxXcxAnalysisGetPerformanceDataReq;
import com.yanzuoguang.wxxcx.analysis.data.WxXcxAnalysisGetPerformanceDataRes; import com.yanzuoguang.wxxcx.dataanalysis.data.WxXcxAnalysisGetPerformanceDataRes;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
/** /**
......
package com.yanzuoguang.wxxcx.analysis.data.service.impl; package com.yanzuoguang.wxxcx.dataanalysis.data.service.impl;
import com.yanzuoguang.wxxcx.analysis.data.WxXcxAnalysisGetPerformanceDataReq; import com.yanzuoguang.wxxcx.dataanalysis.data.WxXcxAnalysisGetPerformanceDataReq;
import com.yanzuoguang.wxxcx.analysis.data.WxXcxAnalysisGetPerformanceDataRequest; import com.yanzuoguang.wxxcx.dataanalysis.data.WxXcxAnalysisGetPerformanceDataRequest;
import com.yanzuoguang.wxxcx.analysis.data.WxXcxAnalysisGetPerformanceDataRes; import com.yanzuoguang.wxxcx.dataanalysis.data.WxXcxAnalysisGetPerformanceDataRes;
import com.yanzuoguang.wxxcx.analysis.data.service.WxXcxAnalysisGetPerformanceDataService; import com.yanzuoguang.wxxcx.dataanalysis.data.service.WxXcxAnalysisGetPerformanceDataService;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
......
package com.yanzuoguang.wxxcx.analysis.distribution; package com.yanzuoguang.wxxcx.dataanalysis.distribution;
/** /**
* 获取用户小程序访问分布数据 响应列表项 * 获取用户小程序访问分布数据 响应列表项
......
package com.yanzuoguang.wxxcx.analysis.distribution; package com.yanzuoguang.wxxcx.dataanalysis.distribution;
/** /**
* 获取用户小程序访问分布数据 响应列表 * 获取用户小程序访问分布数据 响应列表
......
package com.yanzuoguang.wxxcx.analysis.distribution; package com.yanzuoguang.wxxcx.dataanalysis.distribution;
/** /**
* 获取用户小程序访问分布数据 请求 * 获取用户小程序访问分布数据 请求
......
package com.yanzuoguang.wxxcx.analysis.distribution; package com.yanzuoguang.wxxcx.dataanalysis.distribution;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
......
package com.yanzuoguang.wxxcx.analysis.distribution; package com.yanzuoguang.wxxcx.dataanalysis.distribution;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
数据分析 /其他 /获取用户小程序访问分布数据
# 获取用户小程序访问分布数据
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
## 接口说明
### 接口英文名
getVisitDistribution
### 功能描述
该接口用于获取用户小程序访问分布数据。
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/datacube/getweanalysisappidvisitdistribution?access_token=ACCESS_TOKEN
```
### 云调用
- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.analysis.getVisitDistribution
### 第三方调用
- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:18、21
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用
### 请求参数
| 属性 | 类型 | 必填 | 说明 |
| :------------------------------------ | :----- | :--- | :----------------------------------------------------------- |
| access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html); cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html)接口获得 |
| begin_date | string | 是 | 开始日期。格式为 yyyymmdd |
| end_date | string | 是 | 结束日期,限定查询 1 天数据,允许设置的最大值为昨日。格式为 yyyymmdd |
### 返回参数
| | 属性 | 类型 | 说明 |
| :--- | :----------------------------------------------------------- | :------------ | :-------------------- |
| | ref_date | string | 日期,格式为 yyyymmdd |
| | list | array<object> | 数据列表 |
| | 属性类型说明indexstring分布类型。枚举值为:access_source_session_cnt(访问来源分布)、access_staytime_info(访问时长分布)、access_depth_info(访问深度的分布 )item_listarray<object>分布数据列表属性类型说明keynumber场景 id,定义在各个 index 下不同,具体参见下方表格valuenumber该场景 id 访问 pv | | |
## 其他说明
## index 的合法值
| 值 | 说明 |
| :------------------------ | :------------- |
| access_source_session_cnt | 访问来源分布 |
| access_staytime_info | 访问时长分布 |
| access_depth_info | 访问深度的分布 |
## 调用示例
> 示例说明: HTTPS调用
### 请求数据示例
```json
{
"begin_date" : "20170313",
"end_date" : "20170313"
}
```
### 返回数据示例
```json
{
"ref_date": "20170313",
"list": [
{
"index": "access_source_session_cnt",
"item_list": [
{
"key": 10,
"value": 5
},
{
"key": 8,
"value": 687
},
{
"key": 7,
"value": 10740
},
{
"key": 6,
"value": 1961
},
{
"key": 5,
"value": 677
},
{
"key": 4,
"value": 653
},
{
"key": 3,
"value": 1120
},
{
"key": 2,
"value": 10243
},
{
"key": 1,
"value": 116578
}
]
},
{
"index": "access_staytime_info",
"item_list": [
{
"key": 8,
"value": 16329
},
{
"key": 7,
"value": 19322
},
{
"key": 6,
"value": 21832
},
{
"key": 5,
"value": 19539
},
{
"key": 4,
"value": 29670
},
{
"key": 3,
"value": 19667
},
{
"key": 2,
"value": 11794
},
{
"key": 1,
"value": 4511
}
]
},
{
"index": "access_depth_info",
"item_list": [
{
"key": 5,
"value": 217
},
{
"key": 4,
"value": 3259
},
{
"key": 3,
"value": 32445
},
{
"key": 2,
"value": 63542
},
{
"key": 1,
"value": 43201
}
]
}
]
}
```
> 示例说明: 云函数调用
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.analysis.getVisitDistribution({
"beginDate": '20170313',
"endDate": '20170313'
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"refDate": "20170313",
"list": [
{
"index": "access_source_session_cnt",
"itemList": [
{
"key": 10,
"value": 5
},
{
"key": 8,
"value": 687
},
{
"key": 7,
"value": 10740
},
{
"key": 6,
"value": 1961
},
{
"key": 5,
"value": 677
},
{
"key": 4,
"value": 653
},
{
"key": 3,
"value": 1120
},
{
"key": 2,
"value": 10243
},
{
"key": 1,
"value": 116578
}
]
},
{
"index": "access_staytime_info",
"itemList": [
{
"key": 8,
"value": 16329
},
{
"key": 7,
"value": 19322
},
{
"key": 6,
"value": 21832
},
{
"key": 5,
"value": 19539
},
{
"key": 4,
"value": 29670
},
{
"key": 3,
"value": 19667
},
{
"key": 2,
"value": 11794
},
{
"key": 1,
"value": 4511
}
]
},
{
"index": "access_depth_info",
"itemList": [
{
"key": 5,
"value": 217
},
{
"key": 4,
"value": 3259
},
{
"key": 3,
"value": 32445
},
{
"key": 2,
"value": 63542
},
{
"key": 1,
"value": 43201
}
]
}
],
"errMsg": "openapi.analysis.getVisitDistribution:ok"
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :------------------------------------------------------ | :----------------------------------------------------------- |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 40001 | invalid credential access_token isinvalid or not latest | 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口 |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
package com.yanzuoguang.wxxcx.analysis.distribution.service; package com.yanzuoguang.wxxcx.dataanalysis.distribution.service;
import com.yanzuoguang.wxxcx.analysis.distribution.WxXcxAnalysisGetVisitDistributionReq; import com.yanzuoguang.wxxcx.dataanalysis.distribution.WxXcxAnalysisGetVisitDistributionReq;
import com.yanzuoguang.wxxcx.analysis.distribution.WxXcxAnalysisGetVisitDistributionRes; import com.yanzuoguang.wxxcx.dataanalysis.distribution.WxXcxAnalysisGetVisitDistributionRes;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
/** /**
......
package com.yanzuoguang.wxxcx.analysis.distribution.service.impl; package com.yanzuoguang.wxxcx.dataanalysis.distribution.service.impl;
import com.yanzuoguang.wxxcx.analysis.distribution.WxXcxAnalysisGetVisitDistributionReq; import com.yanzuoguang.wxxcx.dataanalysis.distribution.WxXcxAnalysisGetVisitDistributionReq;
import com.yanzuoguang.wxxcx.analysis.distribution.WxXcxAnalysisGetVisitDistributionRequest; import com.yanzuoguang.wxxcx.dataanalysis.distribution.WxXcxAnalysisGetVisitDistributionRequest;
import com.yanzuoguang.wxxcx.analysis.distribution.WxXcxAnalysisGetVisitDistributionRes; import com.yanzuoguang.wxxcx.dataanalysis.distribution.WxXcxAnalysisGetVisitDistributionRes;
import com.yanzuoguang.wxxcx.analysis.distribution.service.WxXcxAnalysisGetVisitDistributionService; import com.yanzuoguang.wxxcx.dataanalysis.distribution.service.WxXcxAnalysisGetVisitDistributionService;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
......
package com.yanzuoguang.wxxcx.analysis.page; package com.yanzuoguang.wxxcx.dataanalysis.page;
/** /**
* 访问页面 请求 * 访问页面 请求
......
package com.yanzuoguang.wxxcx.analysis.page; package com.yanzuoguang.wxxcx.dataanalysis.page;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
......
package com.yanzuoguang.wxxcx.analysis.page; package com.yanzuoguang.wxxcx.dataanalysis.page;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
数据分析 /其他 /获取访问页面数据
# 获取访问页面数据
> 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。
> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`
## 接口说明
### 接口英文名
getVisitPage
### 功能描述
该接口用于访问页面。目前只提供按 page_visit_pv 排序的 top200。
## 调用方式
### HTTPS 调用
```text
POST https://api.weixin.qq.com/datacube/getweanalysisappidvisitpage?access_token=ACCESS_TOKEN
```
### 云调用
- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.analysis.getVisitPage
### 第三方调用
- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:18、21
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用
### 请求参数
| 属性 | 类型 | 必填 | 说明 |
| :------------------------------------ | :----- | :--- | :----------------------------------------------------------- |
| access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html); cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html)接口获得 |
| begin_date | string | 是 | 开始日期。格式为 yyyymmdd |
| end_date | string | 是 | 结束日期,限定查询1天数据,允许设置的最大值为昨日。格式为 yyyymmdd |
### 返回参数
| | 属性 | 类型 | 说明 |
| :--- | :----------------------------------------------------------- | :------------ | :-------------------- |
| | ref_date | string | 日期,格式为 yyyymmdd |
| | list | array<object> | 数据列表 |
| | 属性类型说明page_pathstring页面路径page_visit_pvnumber访问次数page_visit_uvnumber访问人数page_staytime_pvnumber次均停留时长entrypage_pvnumber进入页次数exitpage_pvnumber退出页次数page_share_pvnumber转发次数page_share_uvnumber转发人数 | | |
## 调用示例
> 示例说明: HTTPS调用
### 请求数据示例
```json
{
"begin_date" : "20170313",
"end_date" : "20170313"
}
```
### 返回数据示例
```json
{
"ref_date": "20170313",
"list": [
{
"page_path": "pages/main/main.html",
"page_visit_pv": 213429,
"page_visit_uv": 55423,
"page_staytime_pv": 8.139198,
"entrypage_pv": 117922,
"exitpage_pv": 61304,
"page_share_pv": 180,
"page_share_uv": 166
},
{
"page_path": "pages/linedetail/linedetail.html",
"page_visit_pv": 155030,
"page_visit_uv": 42195,
"page_staytime_pv": 35.462395,
"entrypage_pv": 21101,
"exitpage_pv": 47051,
"page_share_pv": 47,
"page_share_uv": 42
},
{
"page_path": "pages/search/search.html",
"page_visit_pv": 65011,
"page_visit_uv": 24716,
"page_staytime_pv": 6.889634,
"entrypage_pv": 1811,
"exitpage_pv": 3198,
"page_share_pv": 0,
"page_share_uv": 0
},
{
"page_path": "pages/stationdetail/stationdetail.html",
"page_visit_pv": 29953,
"page_visit_uv": 9695,
"page_staytime_pv": 7.558508,
"entrypage_pv": 1386,
"exitpage_pv": 2285,
"page_share_pv": 0,
"page_share_uv": 0
},
{
"page_path": "pages/switch-city/switch-city.html",
"page_visit_pv": 8928,
"page_visit_uv": 4017,
"page_staytime_pv": 9.22659,
"entrypage_pv": 748,
"exitpage_pv": 1613,
"page_share_pv": 0,
"page_share_uv": 0
}
]
}
```
> 示例说明: 云函数调用
### 请求数据示例
```text
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.analysis.getVisitPage({
"beginDate": '20170313',
"endDate": '20170313'
})
return result
} catch (err) {
return err
}
}
```
### 返回数据示例
```json
{
"refDate": "20170313",
"list": [
{
"pagePath": "pages/main/main.html",
"pageVisitPv": 213429,
"pageVisitUv": 55423,
"pageStaytimePv": 8.139198,
"entrypagePv": 117922,
"exitpagePv": 61304,
"pageSharePv": 180,
"pageShareUv": 166
},
{
"pagePath": "pages/linedetail/linedetail.html",
"pageVisitPv": 155030,
"pageVisitUv": 42195,
"pageStaytimePv": 35.462395,
"entrypagePv": 21101,
"exitpagePv": 47051,
"pageSharePv": 47,
"pageShareUv": 42
},
{
"pagePath": "pages/search/search.html",
"pageVisitPv": 65011,
"pageVisitUv": 24716,
"pageStaytimePv": 6.889634,
"entrypagePv": 1811,
"exitpagePv": 3198,
"pageSharePv": 0,
"pageShareUv": 0
},
{
"pagePath": "pages/stationdetail/stationdetail.html",
"pageVisitPv": 29953,
"pageVisitUv": 9695,
"pageStaytimePv": 7.558508,
"entrypagePv": 1386,
"exitpagePv": 2285,
"pageSharePv": 0,
"pageShareUv": 0
},
{
"pagePath": "pages/switch-city/switch-city.html",
"pageVisitPv": 8928,
"pageVisitUv": 4017,
"pageStaytimePv": 9.22659,
"entrypagePv": 748,
"exitpagePv": 1613,
"pageSharePv": 0,
"pageShareUv": 0
}
],
"errMsg": "openapi.analysis.getVisitPage:ok"
}
```
### 错误码
| 错误码 | 错误码取值 | 解决方案 |
| :----- | :------------------------------------------------------ | :----------------------------------------------------------- |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 40001 | invalid credential access_token isinvalid or not latest | 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口 |
| | | |
| :--- | :--- | :--- |
| | | |
| | | |
| | | |
\ No newline at end of file
package com.yanzuoguang.wxxcx.analysis.page.service; package com.yanzuoguang.wxxcx.dataanalysis.page.service;
import com.yanzuoguang.wxxcx.analysis.page.WxXcxAnalysisGetVisitPageReq; import com.yanzuoguang.wxxcx.dataanalysis.page.WxXcxAnalysisGetVisitPageReq;
import com.yanzuoguang.wxxcx.analysis.page.WxXcxAnalysisGetVisitPageRes; import com.yanzuoguang.wxxcx.dataanalysis.page.WxXcxAnalysisGetVisitPageRes;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
/** /**
......
package com.yanzuoguang.wxxcx.analysis.page.service.impl; package com.yanzuoguang.wxxcx.dataanalysis.page.service.impl;
import com.yanzuoguang.wxxcx.analysis.page.WxXcxAnalysisGetVisitPageReq; import com.yanzuoguang.wxxcx.dataanalysis.page.WxXcxAnalysisGetVisitPageReq;
import com.yanzuoguang.wxxcx.analysis.page.WxXcxAnalysisGetVisitPageRequest; import com.yanzuoguang.wxxcx.dataanalysis.page.WxXcxAnalysisGetVisitPageRequest;
import com.yanzuoguang.wxxcx.analysis.page.WxXcxAnalysisGetVisitPageRes; import com.yanzuoguang.wxxcx.dataanalysis.page.WxXcxAnalysisGetVisitPageRes;
import com.yanzuoguang.wxxcx.analysis.page.service.WxXcxAnalysisGetVisitPageService; import com.yanzuoguang.wxxcx.dataanalysis.page.service.WxXcxAnalysisGetVisitPageService;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
......
package com.yanzuoguang.wxxcx.analysis.portrait; package com.yanzuoguang.wxxcx.dataanalysis.portrait;
/** /**
* 获取小程序新增或活跃用户的画像分布数据 请求 * 获取小程序新增或活跃用户的画像分布数据 请求
......
package com.yanzuoguang.wxxcx.analysis.portrait; package com.yanzuoguang.wxxcx.dataanalysis.portrait;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.analysis.portrait; package com.yanzuoguang.wxxcx.dataanalysis.portrait;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
package com.yanzuoguang.wxxcx.analysis.portrait; package com.yanzuoguang.wxxcx.dataanalysis.portrait;
/** /**
* 获取小程序新增或活跃用户的画像分布数据 新用户画像响应对象 * 获取小程序新增或活跃用户的画像分布数据 新用户画像响应对象
......
package com.yanzuoguang.wxxcx.analysis.portrait; package com.yanzuoguang.wxxcx.dataanalysis.portrait;
/** /**
* 获取小程序新增或活跃用户的画像分布数据 新用户画像响应 * 获取小程序新增或活跃用户的画像分布数据 新用户画像响应
......
package com.yanzuoguang.wxxcx.analysis.portrait; package com.yanzuoguang.wxxcx.dataanalysis.portrait;
/** /**
* 获取小程序新增或活跃用户的画像分布数据 活跃用户画像响应 * 获取小程序新增或活跃用户的画像分布数据 活跃用户画像响应
......
package com.yanzuoguang.wxxcx.analysis.portrait.service; package com.yanzuoguang.wxxcx.dataanalysis.portrait.service;
import com.yanzuoguang.wxxcx.analysis.portrait.WxXcxAnalysisGetUserPortraitReq; import com.yanzuoguang.wxxcx.dataanalysis.portrait.WxXcxAnalysisGetUserPortraitReq;
import com.yanzuoguang.wxxcx.analysis.portrait.WxXcxAnalysisGetUserPortraitRes; import com.yanzuoguang.wxxcx.dataanalysis.portrait.WxXcxAnalysisGetUserPortraitRes;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
/** /**
......
package com.yanzuoguang.wxxcx.analysis.portrait.service.impl; package com.yanzuoguang.wxxcx.dataanalysis.portrait.service.impl;
import com.yanzuoguang.wxxcx.analysis.portrait.WxXcxAnalysisGetUserPortraitReq; import com.yanzuoguang.wxxcx.dataanalysis.portrait.WxXcxAnalysisGetUserPortraitReq;
import com.yanzuoguang.wxxcx.analysis.portrait.WxXcxAnalysisGetUserPortraitRequest; import com.yanzuoguang.wxxcx.dataanalysis.portrait.WxXcxAnalysisGetUserPortraitRequest;
import com.yanzuoguang.wxxcx.analysis.portrait.WxXcxAnalysisGetUserPortraitRes; import com.yanzuoguang.wxxcx.dataanalysis.portrait.WxXcxAnalysisGetUserPortraitRes;
import com.yanzuoguang.wxxcx.analysis.portrait.service.WxXcxAnalysisGetUserPortraitService; import com.yanzuoguang.wxxcx.dataanalysis.portrait.service.WxXcxAnalysisGetUserPortraitService;
import com.yanzuoguang.wxxcx.base.WxXcxAccessToken; import com.yanzuoguang.wxxcx.base.WxXcxAccessToken;
import com.yanzuoguang.wxxcx.base.WxXcxConfig; import com.yanzuoguang.wxxcx.base.WxXcxConfig;
import com.yanzuoguang.wxxcx.base.WxXcxRequest; import com.yanzuoguang.wxxcx.base.WxXcxRequest;
......
package com.yanzuoguang.wxxcx.analysis.retain; package com.yanzuoguang.wxxcx.dataanalysis.retain;
/** /**
* 获取用户访问小程序日留存 请求 * 获取用户访问小程序日留存 请求
......
package com.yanzuoguang.wxxcx.analysis.retain; package com.yanzuoguang.wxxcx.dataanalysis.retain;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
......
package com.yanzuoguang.wxxcx.analysis.retain; package com.yanzuoguang.wxxcx.dataanalysis.retain;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
package com.yanzuoguang.wxxcx.analysis.retain; package com.yanzuoguang.wxxcx.dataanalysis.retain;
/** /**
* 获取用户访问小程序月留存 请求 * 获取用户访问小程序月留存 请求
......
package com.yanzuoguang.wxxcx.analysis.retain; package com.yanzuoguang.wxxcx.dataanalysis.retain;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.HttpHelper;
......
package com.yanzuoguang.wxxcx.analysis.retain; package com.yanzuoguang.wxxcx.dataanalysis.retain;
import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError; import com.yanzuoguang.wxxcx.base.WxXcxResponseBaseError;
......
package com.yanzuoguang.wxxcx.analysis.retain; package com.yanzuoguang.wxxcx.dataanalysis.retain;
/** /**
* 获取用户访问小程序周留存 请求 * 获取用户访问小程序周留存 请求
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment