国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 網(wǎng)絡(luò)軟件教程 > 詳細(xì)頁面

如何使用koa2搭建微信第3方公眾平臺

如何使用koa2搭建微信第3方公眾平臺

更新時間:2025-09-20 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)微信(WeChat)是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊服務(wù)的免費(fèi)應(yīng)用程序,由張小龍所帶領(lǐng)的騰訊廣州研發(fā)中心產(chǎn)品團(tuán)隊打造 [2] 。微信支持跨通信運(yùn)營商、跨操作系統(tǒng)平臺...
微信(WeChat)是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊服務(wù)的免費(fèi)應(yīng)用程序,由張小龍所帶領(lǐng)的騰訊廣州研發(fā)中心產(chǎn)品團(tuán)隊打造 [2] 。微信支持跨通信運(yùn)營商、跨操作系統(tǒng)平臺通過網(wǎng)絡(luò)快速發(fā)送免費(fèi)(需消耗少量網(wǎng)絡(luò)流量)語音短信、視頻、圖片和文字,同時,也可以使用通過共享流媒體內(nèi)容的資料和基于位置的社交插件“搖一搖”、“漂流瓶”、“朋友圈”、”公眾平臺“、”語音記事本“等服務(wù)插件。
這次給大家?guī)砣绾问褂胟oa2搭建微信第三方公眾平臺,使用koa2搭建微信第三方公眾平臺的注意事項有哪些,下面就是實(shí)戰(zhàn)案例,一起來看一下。

在寫之前我想先說說koa,koa相比express,在執(zhí)行流程,以及組件方面優(yōu)秀的多,koa本身沒有提供過多的擴(kuò)展組建,但是它便捷的組建擴(kuò)展,可以讓你自由的發(fā)揮,可以想寫其他語言一樣并行執(zhí)行代碼,如果說promise解放了繁瑣的callback,那么 koa 編寫 web 應(yīng)用,通過組合不同的 generator,可以免除重復(fù)繁瑣的回調(diào)函數(shù)嵌套,并極大地提升錯誤處理的效率。koa 不在內(nèi)核方法中綁定任何中間件,它僅僅提供了一個輕量優(yōu)雅的函數(shù)庫,使得編寫 Web 應(yīng)用變得得心應(yīng)手,nodejs的天生的異步處理流程,使得它很適合微信公眾號這種頻繁的消息互動,再加上pm2的多進(jìn)程管理,可以說已經(jīng)很大程度的滿足大號的消息轉(zhuǎn)發(fā)互動已經(jīng)公眾號內(nèi)部紅包玩法。

在使用koa2搭建微信第三方公眾平臺是,首先要解決的是如果獲取微信返回的xml流,以及如何返回對應(yīng)的XML體給微信。
由于本身koa不是一個框架,所以得益于網(wǎng)上眾多的中間件,自己搭建了一個類似于express的框架,本框架已經(jīng)開源,詳情請看我的git地址:https://github.com/yxz1025/koa-lana,所有的微信接發(fā)消息均在此框架中,請讀者自行下載!

好了,首先,我們看看如何獲取微信返回的xml流:

======tool.js=====
//截獲微信返回的xml流文件
const Promise = require('bluebird');
//普通post流轉(zhuǎn)化為promise
var Tool = {
  convertPost: function(req) {
    let post_data = "";
    return new Promise(function(resolve, reject){
      req.on('data', function(chunk) {
        post_data += chunk;
      });
      req.on('end', function() {
        resolve(post_data);
      });
    });
  },
};
module.exports = Tool;
=====weichat.js======
//微信響應(yīng)主體文件
const router = require('koa-router')();
const parseMessage = require('../common/parseMessage');
const config = require('../config');
const WXBizMsgCrypt = require('wechat-crypto');
const middleware = require('../model/middleware');
const validator = require('validator');
const Aes = require('../common/aes');
const Tool = require('../common/tool');
const cryptor = new WXBizMsgCrypt(config.component_config.token, config.component_config.key, config.component_config.component_appid);
//第三方授權(quán)路徑 /:appid/callback  /wechat/100234/callback
router.post('/:appid/callback', async function(ctx, next) {
  let post_data = "";
  let req = ctx.req;
  post_data = await Tool.convertPost(req);
  let xml = parseMessage(post_data);
  let signature = cryptor.getSignature(ctx.query.timestamp, ctx.query.nonce, xml.encrypt);
  if (ctx.query.msg_signature != signature) {
    ctx.body = 'Auth failed!'; // 指紋碼不匹配時返回錯誤信息,禁止后面的消息接受及發(fā)送
  }
  let message = middleware.decryptXml(xml);
  let appid = ctx.params.appid;
  message.appId = appid;
  //發(fā)送消息隊列
  switch (message.msgType) {
    case 'text':
      //測試
      if (message.toUserName == "gh_3c884a361561") {
        if (message.content == "TESTCOMPONENT_MSG_TYPE_TEXT") {
          let text = middleware.text(message, message.content + "_callback");
          let reply = middleware.encryptXml(text);
          return ctx.body = reply;
        }
        let content = message.content;
        if (content.indexOf("QUERY_AUTH_CODE") != -1) {
          ctx.body = "";
          let code_li = content.split(":");
          await middleware.customSend(message.fromUserName, code_li[1]);
          return;
        }
      }
      let keywords = validator.trim(message.content).toLowerCase();
      let member_config = await middleware.getMemberConfig(message.toUserName, keywords);
      if (!member_config) {
        await middleware.sendMnsQuene(message);
        return ctx.body = "success";
      }else{
         //匹配成功
        message.packetsId = parseInt(member_config.hongbaoId);
        message.keywords = keywords;
        await middleware.sendMnsQuene(message);
        let data = {
          title: member_config.news_title || '點(diǎn)我領(lǐng)紅包',
          description: member_config.description || '第一輪紅包雨開始了,手快有,手慢無!',
          picurl: member_config.picurl || 'http://7xqomp.com2.z0.glb.qiniucdn.com/17269743.png'
        };
        let key = {
          fromUserName: message.fromUserName,
          toUserName: message.toUserName,
          keywords: keywords,
          appId: appid
        };
        key = JSON.stringify(key);
        key = Aes.encypt(key);
        key = Aes.base64_encode(key);
        //獲取授權(quán)域名
        let auth_url = await middleware.packetDomain();
        data.url = "http://" + appid + "." + auth_url + "/redPackets/koulin?key=" + key;
        let news = middleware.news(message, [data]);
        let reply = middleware.encryptXml(news);
        ctx.body = reply; 
        return;       
      }
      break;
    case 'event':
      await middleware.sendMnsQuene(message);
      //測試專用
      if (message.toUserName == "gh_3c884a361561") {
        let text = middleware.text(message, message.event + "from_callback");
        let reply = middleware.encryptXml(text);
        ctx.body = reply;
        return;
      }
      break;
    default:
      await middleware.sendMnsQuene(message);
      ctx.body = "success";
      return;
  };
});
module.exports = router;

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注php中文網(wǎng)其它相關(guān)文章!

推薦閱讀:

如何操作Koa2微信公眾號開發(fā)之本地開發(fā)調(diào)試環(huán)境搭建

如何操作Koa2微信公眾號實(shí)現(xiàn)消息管理

以上就是如何使用koa2搭建微信第三方公眾平臺的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


微信提供公眾平臺、朋友圈、消息推送等功能,用戶可以通過“搖一搖”、“搜索號碼”、“附近的人”、掃二維碼方式添加好友和關(guān)注公眾平臺,同時微信將內(nèi)容分享給好友以及將用戶看到的精彩內(nèi)容分享到微信朋友圈。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        精品伦理精品一区| 国产超碰在线一区| 美女爽到高潮91| 欧美一区二区三区免费在线看| 蜜臀久久99精品久久久画质超高清 | 国产成人精品午夜视频免费| 国产精品久久网站| 欧美高清www午色夜在线视频| 狂野欧美性猛交blacked| 中文字幕电影一区| 91精品国产一区二区三区蜜臀 | 亚洲日本在线看| 欧美日韩中文一区| 韩国一区二区视频| 亚洲嫩草精品久久| 久久久国产午夜精品| 欧美三级电影网站| 精品亚洲免费视频| 午夜免费欧美电影| 亚洲色图第一区| 日韩欧美国产一区在线观看| 99国产一区二区三精品乱码| 青娱乐精品视频| 亚洲精品日产精品乱码不卡| 日韩免费视频一区| 欧美日韩高清一区| 色婷婷狠狠综合| 高清不卡一区二区| 久久国产尿小便嘘嘘| 亚洲制服丝袜在线| 国产精品久久毛片| 久久久久国产精品麻豆| 欧美久久久久中文字幕| 99久久精品国产网站| 国产精品自产自拍| 麻豆国产一区二区| 午夜精品福利一区二区三区av | 国产精品精品国产色婷婷| 欧美疯狂性受xxxxx喷水图片| av爱爱亚洲一区| 国产精品一区二区视频| 国产美女视频91| 久久国产福利国产秒拍| 日韩精品成人一区二区三区 | 久久99热这里只有精品| 午夜视频一区二区| 图片区日韩欧美亚洲| 亚洲一区二区在线视频| 一区二区三区久久久| 18成人在线视频| 一区在线观看视频| 一区二区三区色| 亚洲国产精品影院| 亚洲午夜精品一区二区三区他趣| 亚洲精品国产一区二区三区四区在线 | 久久99国产乱子伦精品免费| 青草国产精品久久久久久| 午夜精品福利一区二区三区av| 亚洲图片欧美色图| 日韩电影在线观看电影| 麻豆免费精品视频| 国内精品伊人久久久久影院对白| 国产在线视频一区二区| 成人黄页毛片网站| 色综合久久综合中文综合网| 欧美三级欧美一级| 欧美成人国产一区二区| 国产欧美日韩亚州综合| 亚洲激情男女视频| 蜜臀av在线播放一区二区三区 | 日本午夜一本久久久综合| 日韩激情视频在线观看| 激情五月激情综合网| 成人午夜大片免费观看| 欧美在线短视频| 精品国产污网站| 中文字幕日韩一区| 天天综合天天综合色| 精品一区二区三区不卡| 丰满少妇久久久久久久| 色美美综合视频| 欧美精品一区二区三区很污很色的| 中文字幕av一区二区三区免费看| 亚洲一区二区三区四区在线免费观看| 日韩高清一级片| 不卡av在线网| 日韩精品中文字幕在线不卡尤物 | 欧美日韩免费视频| 精品久久久久久亚洲综合网| 亚洲日本一区二区| 国产一区二区精品久久99| 在线观看国产91| 国产视频一区二区三区在线观看| 亚洲大片免费看| 成人av在线一区二区三区| 51精品久久久久久久蜜臀| 国产精品白丝在线| 蜜桃视频在线一区| 在线观看日韩毛片| 国产精品麻豆网站| 国产一区二区三区在线观看免费| 欧美三级蜜桃2在线观看| 中文字幕在线观看不卡| 国产综合色精品一区二区三区| 在线观看三级视频欧美| 国产精品国产成人国产三级| 日本不卡123| 欧美乱妇15p| 亚洲伊人伊色伊影伊综合网| av影院午夜一区| 欧美国产视频在线| 国产精品综合在线视频| 久久综合资源网| 国产伦精品一区二区三区视频青涩 | 一区二区三区日韩| 不卡一区二区在线| 久久久99精品久久| 国产一区二区精品久久99| 日韩一级大片在线| 五月天亚洲精品| 欧洲另类一二三四区| 亚洲欧美日韩国产综合在线| 99久久综合狠狠综合久久| 国产精品毛片大码女人| 99久久精品一区二区| 亚洲欧美国产毛片在线| 在线视频国内自拍亚洲视频| 亚洲一区免费在线观看| 欧美日韩不卡一区二区| 日本伊人精品一区二区三区观看方式| 欧美夫妻性生活| 久久精品国产亚洲aⅴ | 久久久国产午夜精品| 国产呦萝稀缺另类资源| 欧美国产乱子伦| 91在线国产观看| 一区二区国产盗摄色噜噜| 欧美三级在线看| 日韩成人一区二区三区在线观看| 69av一区二区三区| 麻豆成人久久精品二区三区小说| 久久久亚洲高清| 一本大道久久精品懂色aⅴ| 亚洲第一久久影院| 精品久久国产老人久久综合| 国产99精品视频| 亚洲综合网站在线观看| 日韩一区二区三区免费看| 国产乱人伦偷精品视频不卡| 中文字幕一区二区三区四区不卡| 97成人超碰视| 男男视频亚洲欧美| 欧美国产一区二区| 欧美三级蜜桃2在线观看| 蜜桃视频一区二区| 中文字幕一区二区在线观看| 欧美日韩在线直播| 国产精品99久久久久久宅男| 亚洲精品乱码久久久久久| 欧美电影在哪看比较好| 成人激情午夜影院| 琪琪久久久久日韩精品| 国产精品久久久久久久久免费樱桃| 色久优优欧美色久优优| 久久国产人妖系列| 亚洲最色的网站| 亚洲国产激情av| 日韩欧美在线123| 在线欧美小视频| av毛片久久久久**hd| 寂寞少妇一区二区三区| 亚洲第一成年网| 亚洲情趣在线观看| 国产日产欧美精品一区二区三区| 欧美日韩一级二级三级| 99v久久综合狠狠综合久久| 国产一区二区在线视频| 强制捆绑调教一区二区| 亚洲第一久久影院| 樱桃国产成人精品视频| 欧美激情一区二区三区全黄| 91精品国产色综合久久| 欧美日韩国产精品自在自线| 一本到不卡精品视频在线观看| 国产福利精品导航| 九九国产精品视频| 免费的成人av| 日韩**一区毛片| 午夜精品视频一区| 亚洲自拍偷拍综合| 最新国产の精品合集bt伙计| 国产日韩欧美激情| 欧美成人精品3d动漫h| 日韩一级免费观看| 日韩视频一区二区三区| 日韩欧美一区二区久久婷婷| 欧美丰满少妇xxxbbb| 欧美精品欧美精品系列| 欧美日韩一区高清| 欧美三级在线看|