VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云最新优惠促销活动
jtti最新优惠促销活动

如何使用koa2构建微信第三方公众平台

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

这次,我将为您带来如何使用koa2构建微信的第三方公众平台。使用koa2搭建微信第三方公众平台有哪些注意事项?下面是一个实际案例。让我们来看看。

在写作之前,我想谈谈koa。在执行过程和组件方面,koa比express好得多。koa本身并没有提供太多的扩展,但它允许您像编写其他语言一样自由地并行开发和执行代码。如果promise解放了繁琐的回调,那么koa可以编写web应用程序,通过组合不同的生成器,它可以避免回调函数的重复和繁琐的嵌套,并大大提高错误处理的效率。Koa在内核方法中没有绑定任何中间件,只是提供了一个轻量级的优雅函数库,这使得编写Web应用程序变得很容易。nodejs天然的异步处理流程使其非常适合微信微信官方账号等频繁的消息交互,而pm2的多进程管理可以说已经在很大程度上满足了大规模的消息转发交互,这在微信官方账号中得到了发挥。

使用koa2构建微信第三方公共平台时,首先要解决的是如何获取微信返回的xml流以及如何将对应的XML体返回给微信。Koa本身不是一个框架,所以多亏了互联网上的许多中间件,我构建了一个类似于express的框架。这个框架是开源的。详情请见我的git地址:https://github.com/yxz1025/koa-lana.所有微信消息都在这个框架内。请自行下载!

好的,首先我们来看看如何获取微信返回的xml流:

= = = = = tool . js = = = = =/拦截微信返回的xml流文件const Promise = require(‘蓝鸟‘);//普通post流转换为PromiseVartool = { convert post: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 =工具;= = = = weichat . js = = = = = =/微信响应正文文件constrator = require(‘KOA -router‘)();const parse message = require(‘../common/parse message‘);const config = require(‘../config’);const WXBizMsgCrypt = require(‘we chat -crypto‘);const middleware = require(‘../模型/中间件’);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);//第三方授权路径/:appid/callback/we chat/100234/callback router . post‘/:appid/callback‘,async function(CTX,next){ let post _ data =““;let req = ctx.reqpost _ data = await tool . convert post(req);let XML = parse message(post _ data);let signature = cryptor . get signature(CTX . query . timestamp,ctx.query.nonce,XML . encrypt);if(CTX . query . msg _ signature!= signature){ CTX . body =‘验证失败!’;//当指纹码不匹配时,返回错误消息,禁止接受和发送以下消息} let message = middleware。解密XML(XML);let appid = CTX . params . appid;message.appId = appid//发送消息队列开关(message . msgtype){ case‘text://Test if(message . tou username = =“GH _ 3c 884 a 361561“)。{ if(message . content = =“test component _ MSG _ TYPE _ TEXT“){ let TEXT = middleware . TEXT(message,message . content+“_回调“);let reply = middleware . encrypt XML(text);return ctx.body = reply} let content = message.contentif(content . index of(“QUERY _ AUTH _ CODE“)!= -1){ CTX . body =““;let code _ Li = content . split(“:“);await middleware . custom send(message . from username,code _ Li【1】);返回;} } let关键字= validator . trim(message . content)。toLowerCase();let member _ config = await middleware . get member config(message . touser name,keywords);如果(!member _ config){ await middleware . sendmnsquene(message);return ctx.body =“成功“;}else{ //匹配成功;message . packet sid = parse int(member _ config . hongbaoid);message.keywords =关键词;await middleware . sendmnsquene(message);Let data = {title: member _ config。news _ title | |点击领红包’,说明:member _ config。描述||“第一轮红包雨开始了,手快了,但手慢了!”,pic URL:member _ config . pic URL | |‘http://7xqomp . com 2 . z0 . glb . qiniucdn . com/17269743 . png‘};let key = { from username:message . from username,toUserName: message.toUserName,keywords: keywords,appId:appId };key = JSON . string ify(key);key = AES . ency pt(key);key = AES . base64 _ encode(key);//获取授权域名Letauth _ URL = AwaitMiddleware。packet domain();data . URL =“http://“+appid+“。+auth _ URL+“/red packets/kou Lin?key =“+key;let news = middleware . news(message,【data】);let reply = middleware . encrypt XML(news);ctx.body = reply返回;}破;case“event”:await middleware . sendmnsquene(message);//测试特殊if(消息。touusername = =“GH _ 3c 884 a 361561“){ let text = middleware . text(message,message . event+“from _ callback“);let reply = middleware . encrypt XML(text);ctx.body = reply返回;}破;默认值:await middleware . sendmnsquene(message);CTX . body =“success“;返回;};});module.exports = router我相信你看完这个案例后已经掌握了方法。更多精彩请关注主机参考其他相关文章!

推荐阅读:

Koa2微信微信官方账号开发的本地开发调试环境如何操作?

Koa2微信微信官方账号如何操作实现消息管理?

以上就是如何使用koa2搭建微信第三方公众平台的细节。更多资讯请关注主机参考其他相关文章!

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:如何使用koa2构建微信第三方公众平台 https://zhujicankao.com/105304.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 如何使用koa2构建微信第三方公众平台
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!