zoukankan      html  css  js  c++  java
  • 微信小程序内容校验之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接口供微信返回结果,再根据自己的业务逻辑实现代码。

  • 相关阅读:
    git常用命令及常见问题解析
    如何让一个sprite绕一个点旋转,同时又可以实现指定旋转角度并慢慢停下的效果
    webpack打包,同时将ES6转为ES5,初探
    测试网站接口,nginx篇
    Phaserjs V2的state状态解析及技巧
    Phaserjs怎样用ES6开发游戏
    PIXI屏幕自适应以及强制横屏
    CSS性能优化新属性:will-change
    div,css&table布局有哪些区别
    防止js全局变量污染方法总结
  • 原文地址:https://www.cnblogs.com/luoyangyang/p/11584964.html
Copyright © 2011-2022 走看看