This commit is contained in:
2026-10-08 18:18:21 +08:00
parent 9cc1ff546c
commit 1e3095c05e
1911 changed files with 349551 additions and 0 deletions
@@ -0,0 +1,30 @@
'use strict';
module.exports = {
/**
* code2Session
* @url template/openapi/alipay/pub/code2Session 前端调用的url参数地址
* data 请求参数
* @param {String} params1 参数1
*/
main: async (event) => {
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: "" };
// 业务逻辑开始-----------------------------------------------------------
let {
code,
} = data;
let code2SessionRes = await vk.openapi.alipay.auth.code2Session({
code,
needKey: true
});
if (code2SessionRes.code !== 0) {
return code2SessionRes;
}
console.log('code2SessionRes: ', code2SessionRes);
res.openid = code2SessionRes.openid;
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,24 @@
'use strict';
module.exports = {
/**
* 获取支付宝小程序码
* @url template/openapi/alipay/pub/getMiniCode 前端调用的url参数地址
* data 请求参数
* @param {String} path 小程序页面路径
*/
main: async (event) => {
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: "" };
// 业务逻辑开始-----------------------------------------------------------
let {
page,
scene
} = data;
res = await vk.openapi.alipay.acode.getMiniCode(data);
res.base64 = res.qr_code_url_circle_white; // 兼容其他小程序的返回字段
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,34 @@
'use strict';
module.exports = {
/**
* code2Session
* @url template/openapi/douyin/pub/code2Session 前端调用的url参数地址
* data 请求参数
* @param {String} params1 参数1
*/
main: async (event) => {
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: "" };
// 业务逻辑开始-----------------------------------------------------------
let {
code,
anonymousCode
} = data;
let code2SessionRes = await vk.openapi.douyin.auth.code2Session({
code,
anonymousCode,
needKey: true
});
if (code2SessionRes.code !== 0) {
return code2SessionRes;
}
console.log('code2SessionRes: ', code2SessionRes);
res.openid = code2SessionRes.openid;
res.anonymousOpenid = code2SessionRes.anonymousOpenid;
res.unionid = code2SessionRes.unionid;
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,46 @@
'use strict';
module.exports = {
/**
* 获取抖音小程序码
* @url template/openapi/douyin/pub/getMiniCode 前端调用的url参数地址
* data 请求参数
* @param {String} path 小程序页面路径
*/
main: async (event) => {
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: "" };
// 业务逻辑开始-----------------------------------------------------------
let {
path
} = data;
res = await vk.openapi.douyin.acode.getMiniCode({
path
});
if (typeof res === "object" && res.code) {
return res;
}
try {
// 二进制转base64
let base64 = Buffer.from(res, 'binary').toString('base64');
return {
code: 0,
base64: `data:image/png;base64,${base64}`
};
} catch (err) {
// 转base64失败
return {
code: -1,
msg: "生成小程序码失败",
err: {
message: err.message,
stack: err.stack
}
};
}
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,38 @@
'use strict';
module.exports = {
/**
* 图片违规检测示例
* @url template/openapi/douyin/pub/imgSecCheck 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: 'ok' };
// 业务逻辑开始-----------------------------------------------------------
let { base64 } = data;
/**
* 实际开发中,图片可能是多张图,比如多达9张图
* 如果在一个请求中循环检测,可能会超时。
* 方案1:前端选择完图片就自动一张一张检测和上传(即9张图会有9个请求)
* 方案2:使用Promise.all
*/
let imgSecCheckRes = await vk.openapi.douyin.security.imgSecCheck({
base64
});
if (imgSecCheckRes.code !== 0) {
// 未通过检测
return imgSecCheckRes;
}
// 若通过检测,则继续执行自己的业务
// ...
// ...
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,36 @@
'use strict';
module.exports = {
/**
* 文本违规检测示例
* @url template/openapi/douyin/pub/msgSecCheck 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: 'ok' };
// 业务逻辑开始-----------------------------------------------------------
let {
content,
} = data;
// 实际业务中,content可能是评论的内容等
let msgSecCheckRes = await vk.openapi.douyin.security.msgSecCheck({
content,
});
if (msgSecCheckRes.code !== 0) {
// 未通过检测
return msgSecCheckRes;
}
res.result = msgSecCheckRes;
// 若通过检测,则继续执行自己的业务
// ...
// ...
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,32 @@
'use strict';
module.exports = {
/**
* code2Session
* @url template/openapi/qq/pub/code2Session 前端调用的url参数地址
* data 请求参数
* @param {String} params1 参数1
*/
main: async (event) => {
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: "" };
// 业务逻辑开始-----------------------------------------------------------
let {
code,
anonymousCode
} = data;
let code2SessionRes = await vk.openapi.qq.auth.code2Session({
code,
needKey: true
});
if (code2SessionRes.code !== 0) {
return code2SessionRes;
}
console.log('code2SessionRes: ', code2SessionRes);
res.openid = code2SessionRes.openid;
res.unionid = code2SessionRes.unionid;
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,39 @@
'use strict';
module.exports = {
/**
* 图片违规检测示例
* @url template/openapi/qq/pub/imgSecCheck 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk , db, _ } = util;
let { uid } = data;
let res = { code : 0, msg : 'ok' };
// 业务逻辑开始-----------------------------------------------------------
let { base64 } = data;
/**
* 实际开发中,图片可能是多张图,比如多达9张图
* 如果在一个请求中循环检测,可能会超时。
* 方案1:前端选择完图片就自动一张一张检测和上传(即9张图会有9个请求)
* 方案2:使用Promise.all
* 特别注意:目前微信小程序的这个API有1M大小的限制。(此为微信官方限制)
*/
let imgSecCheckRes = await vk.openapi.qq.security.imgSecCheck({
base64
});
if(imgSecCheckRes.code !== 0){
// 未通过检测
return imgSecCheckRes;
}
// 若通过检测,则继续执行自己的业务
// ...
// ...
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,36 @@
'use strict';
module.exports = {
/**
* 文本违规检测示例
* @url template/openapi/qq/pub/msgSecCheck 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: 'ok' };
// 业务逻辑开始-----------------------------------------------------------
let {
content,
} = data;
// 实际业务中,content可能是评论的内容等
let msgSecCheckRes = await vk.openapi.qq.security.msgSecCheck({
content,
});
if (msgSecCheckRes.code !== 0) {
// 未通过检测
return msgSecCheckRes;
}
res.result = msgSecCheckRes;
// 若通过检测,则继续执行自己的业务
// ...
// ...
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,27 @@
'use strict';
module.exports = {
/**
* 获取模板列表
* @url template/openapi/weixin/pub/getTemplateList 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: 'ok' };
// 业务逻辑开始-----------------------------------------------------------
res = await vk.openapi.weixin.request({
method: "get",
url: "wxaapi/newtmpl/gettemplate",
data: {
}
});
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,39 @@
'use strict';
module.exports = {
/**
* 图片违规检测示例
* @url template/openapi/weixin/pub/imgSecCheck 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk , db, _ } = util;
let { uid } = data;
let res = { code : 0, msg : 'ok' };
// 业务逻辑开始-----------------------------------------------------------
let { base64 } = data;
/**
* 实际开发中,图片可能是多张图,比如多达9张图
* 如果在一个请求中循环检测,可能会超时。
* 方案1:前端选择完图片就自动一张一张检测和上传(即9张图会有9个请求)
* 方案2:使用Promise.all
* 特别注意:目前微信小程序的这个API有1M大小的限制。(此为微信官方限制)
*/
let imgSecCheckRes = await vk.openapi.weixin.security.imgSecCheck({
base64
});
if(imgSecCheckRes.code !== 0){
// 未通过检测
return imgSecCheckRes;
}
// 若通过检测,则继续执行自己的业务
// ...
// ...
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,48 @@
'use strict';
module.exports = {
/**
* 文本违规检测示例
* @url template/openapi/weixin/pub/msgSecCheck 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: 'ok' };
// 业务逻辑开始-----------------------------------------------------------
let {
content,
version,
scene,
openid,
title,
nickname,
signature,
} = data;
// 实际业务中,content可能是评论的内容等
let msgSecCheckRes = await vk.openapi.weixin.security.msgSecCheck({
content,
version,
scene,
openid,
title,
nickname,
signature,
});
if (msgSecCheckRes.code !== 0) {
// 未通过检测
return msgSecCheckRes;
}
res.result = msgSecCheckRes;
// 若通过检测,则继续执行自己的业务
// ...
// ...
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,45 @@
'use strict';
module.exports = {
/**
* 发送订阅消息
* @url template/openapi/weixin/pub/sendMessage 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk , db, _ } = util;
let { uid } = data;
let res = { code : 0, msg : 'ok' };
// 业务逻辑开始-----------------------------------------------------------
let { openid } = data;
res = await vk.openapi.weixin.subscribeMessage.send({
touser : openid, // 接收者(用户)的 openid
template_id : "UmINo5I6IcqktIwNt2TVorkU7f4dzd4eyNjfvOiwEC0", // 所需下发的订阅模板id
page : "pages/index/index", // 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
data : {
character_string1:{
value:"202008030930001"
},
name2:{
value:"中通快递"
},
character_string3:{
value:"ZT2019928321392931"
},
thing6:{
value:"雪花秀滋盈生人生焕颜精华露"
},
thing8:{
value:"杭州市xxxxxxxxx号"
}
},
miniprogram_state : "formal", // 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
});
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,59 @@
'use strict';
module.exports = {
/**
* 发送公众号模板消息(touser只能是用户在该公众号下的openid)
* @url template/openapi/weixin/pub/sendTemplateMessage 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: 'ok' };
// 业务逻辑开始-----------------------------------------------------------
res = await vk.openapi.weixin.h5.templateMessage.send({
touser: "", // 接收者(用户)的 openid(该用户在公众号下的openid)
template_id: "", // 所需下发的订阅模板id
url: "https://www.baidu.com", // 跳转网页时填写(如填了miniprogram参数则忽略url参数)
miniprogram: {
appid: "",
pagepath: "pages/order/order?id=aaa"
},
data: {
"first": {
"value": "您购买的订单已经发货啦,正快马加鞭向您飞奔而去。",
"color": "#173177"
},
"keyword1": {
"value": "D201803111235825",
"color": "#173177"
},
"keyword2": {
"value": "2018-03-11 19:56",
"color": "#173177"
},
"keyword3": {
"value": "顺丰快递",
"color": "#173177"
},
"keyword4": {
"value": "980456952123",
"color": "#173177"
},
"keyword5": {
"value": "王先生 135xxxxxxxx 广东省深圳市龙华区建设东路",
"color": "#173177"
},
"remark": {
"value": "欢迎再次购买!",
"color": "#173177"
}
}
});
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,59 @@
'use strict';
module.exports = {
/**
* 发送公众号模板消息(touser可以是小程序下的openid,也可以是公众号下的openid)
* @url template/openapi/weixin/pub/sendTemplateMessage 前端调用的url参数地址
* data 请求参数 说明
* res 返回参数说明
* @params {Number} code 错误码,0表示成功
* @params {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { config, vk, db, _ } = util;
let { uid } = data;
let res = { code: 0, msg: 'ok' };
// 业务逻辑开始-----------------------------------------------------------
res = await vk.openapi.weixin.uniformMessage.send({
touser: "", // 接收者(用户)的 openid(可以是小程序下的openid,也可以是公众号下的openid)
template_id: "", // 所需下发的订阅模板id
url: "https://www.baidu.com", // 跳转网页时填写(如填了miniprogram参数则忽略url参数)
miniprogram: {
appid: "",
pagepath: "pages/order/order?id=aaa"
},
data: {
"first": {
"value": "您购买的订单已经发货啦,正快马加鞭向您飞奔而去。",
"color": "#173177"
},
"keyword1": {
"value": "D201803111235825",
"color": "#173177"
},
"keyword2": {
"value": "2018-03-11 19:56",
"color": "#173177"
},
"keyword3": {
"value": "顺丰快递",
"color": "#173177"
},
"keyword4": {
"value": "980456952123",
"color": "#173177"
},
"keyword5": {
"value": "王先生 135xxxxxxxx 广东省深圳市龙华区建设东路",
"color": "#173177"
},
"remark": {
"value": "欢迎再次购买!",
"color": "#173177"
}
}
});
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}