# 微信公众号API
# 配置文件
打开 uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
文件,配置里面的
"h5-weixin" 微信公众号
"h5-weixin": {
"oauth": {
"weixin": {
"appid": "",
"appsecret": ""
}
}
},
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
配置完需要上传 uni-config-center
这个公共模块
# 微信公众号万能API调用接口
特别注意
微信公众号调用api需要白名单授权,传送门 (opens new window)
如何获取我本地电脑的IP (opens new window)
let requestRes = await vk.openapi.weixin.h5.request({
method: "GET",
url: "wxaapi/newtmpl/gettemplate",
data: {
}
});
1
2
3
4
5
6
7
2
3
4
5
6
7
请求参数
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
method | 请求模式,分为GET和POST(不区分大小写) | String | POST | GET |
url | 微信接口路径 | String | - | - |
data | 请求数据 | Object | - | - |
appid | 可不填,不填会自动从uni-id配置的h5-weixin节点里获取appid | String | - | - |
appsecret | 可不填,不填会自动从uni-id配置的h5-weixin节点里获取appsecret | String | - | - |
url参数详解
以 生成带参数的二维码
为例
请求地址
POST
https://api.weixin.qq.com/cgi-bin/qrcode/create
?access_token=TOKEN
method
为 POST
url
为 cgi-bin/qrcode/create
最终代码
let requestRes = await vk.openapi.weixin.h5.request({
method: "POST",
url: "cgi-bin/qrcode/create",
data: {
expire_seconds: 604800,
action_name: "QR_STR_SCENE",
action_info:{
scene:{
user_id: "001"
}
}
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
公共返回参数
参数 | 说明 | 类型 |
---|---|---|
code | 0代表成功,其他均为失败 | Number |
msg | 失败时的提示内容 | String |
其他返回参数参考微信公众号服务端API文档 传送门 (opens new window)
# 获取固定IP
unicloud如何获取固定IP?
# 腾讯云空间
# 阿里云空间
直接把下面的ip都加进去即可。
代理服务器IP列表
47.92.132.2
47.92.152.34
47.92.87.58
47.92.207.183
8.142.185.204
1
2
3
4
5
2
3
4
5
# 常见问题
# 如何调用上传临时素材接口?
上传素材接口与其他接口不一样,因为涉及到formData格式的参数
代码块
let {
base64, //前端通过vk.pubfn.fileToBase64将图片转为base64
} = data;
if (!base64) return { code:-1, msg:"base64不能为空" };
let base64Str = "base64,";
let base64Index = base64.indexOf(base64Str);
if (base64Index > -1) base64 = base64.substring(base64Index + base64Str.length);
let dataBuffer = new Buffer(base64, 'base64');
let formData = new vk.formDataUtil.FormData();
formData.append('media', dataBuffer, {
filename: `${Date.now()}.png`,
contentType: 'image/png'
});
let type = "image";
let requestRes = await vk.openapi.weixin.h5.request({
method: "POST",
url: `cgi-bin/media/upload?type=${type}`,
content: formData.getBuffer(),
headers: formData.getHeaders(),
useContent: false
});
console.log('requestRes: ', requestRes)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28