微信小程序内容校验之node实现

项目介绍:小程序是关于教师直播,所以需要对教师上传的音频和图片进行校验

方法:调用微信API(详情参考here)上传音频or图片,微信异步返回校验结果

流程:

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

 1 const request = require('request');
 2 
 3 // 获取小程序全局唯一后台接口调用凭据(access_token)
 4 // 参数:appid-它其实就是小程序的「身份证号码」  secret-AppSecret(小程序密钥)  可在Web登录小程序账号 在设置---开发设置中 获取
 5 var getAccessToken = function(appid, secret){
 6     return new Promise(function(resolve, reject){
 7         let wxApi = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`
 8         request(wxApi, function (error, response, data) {
 9             var wxApiData = JSON.parse(data)
10             if (wxApiData.access_token) {
11                 resolve(wxApiData.access_token)
12             } else {
13                 reject(wxApiData.errcode)
14             }
15         });
16     })
17 }

2、调用检验API

 1 // 参数 access_token-上面得到 media_url-文件地址,一定要能打开下载否则微信不能识别  media_type-1:音频;2:图片
 2 var wxCheck = function(access_token, media_url, media_type){
 3     return new Promise(function(resolve, reject){
 4         let wxApi = `https://api.weixin.qq.com/wxa/media_check_async?access_token=${access_token}`
 5         let reqData = {
 6             media_url: media_url,
 7             media_type: parseInt(media_type)
 8         }
 9         request({
10             url: wxApi,
11             method: "POST",
12             json: true,
13             headers: {
14                 "content-type": "application/json",
15             },
16             body: reqData
17         }, function (error, response, wxApiData) {
18             console.log(wxApiData, typeof(wxApiData), "wxApiData")
19             if (wxApiData.errcode == 0) {  // 检测请求已接受
20                 resolve(wxApiData.trace_id)
21             } else {
22                 reject(wxApiData.errmsg)
23             }
24         });
25     })
26 }

3、微信异步返回检测结果(注意:下面代码必须要配置微信的推送消息,微信方可返回结果,详情参考here

开发者实现HTTP/HTTPS接口供微信返回结果,再根据自己的业务逻辑实现代码。