最近几个月本人与团队一直与小程序打交道,对小程序的实战开发算比较熟悉,也因一些朋友经常问我各种小程序问题,无不能一一回答,想了很久,决定还是空余时间来写写文章吧,偶尔发现一个人安静的时候写文章特爽,不信大伙可以试试哦^_^
一般项目开发已快速为主,这时想到了一个小程序开源框架,盛派Senparc,这个项目使用过程中确实很爽,开发速度贼快,想了解底层原理的同学可以下载盛派Senparc开源项目,开原址址附文章底部。
小程序开发系统文章就此诞生了,后面文章会覆盖小程序的所有功能,希望对刚步入小程序开的同学有所帮助。
目录
一、微信公众平台开发者设置
二、新建.netcore 项目与微信服务器牵手
三、开发者服务器自动回复
四、各种消息类型处理
五、总结
微信公众平台开发者设置
登录微信公众平台小程序后台,开发设置-消息推送,启用开发者,填写相关信息,如下图
aaarticlea/png;base64,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b9XHVfGtb0yvfv+b04P33F7IHMKxD9M3f3/u8xvf8vc7cVBQHCAkfG4m/Q691YLicbq5mpP7qznB9dYhJLJO4pvUY3szXavHVUER5vbyiglxaEFhi4Zircw5znIBYtdn6xrwCggbXqHQG16h0BteodAbXqHQG16h0BteodAbXqHQG16h0BteodAbXqHQG16h0BteodAbXqHQG16h0BteodAbXqHQG16h0BteodAbXqHQG16h0BteodAbXqHQG14hkeOUQjFgE/u5yLhTj8M+VWGQhILkdqrqgoe7WDSY4x7uVHGSipmqFhlwXgVFLCCkGJDkP/6ZknNVGCyhEnavoNAFhH28xremb8xtLc89t6BQRZAd09sKCooDhETtzAuKkwp9zUlv/jNtXmwVFB3jLAuKudiQF+65rXenwwqKVKjpxSnWK65FWTjItqvp+toUYV5biVc8eOEVCr3hFQq94RUKveEVCr3hFQq94RUKveEVCr3hFQq94RUKveEVCr3hFQq94RUKveEVCr3hFQq94RUKveEVCr3hFQq94RUKveEVCr3hFQq94RUKveEVCr3hFRI5TiYk/bfT7e3OOwVhP/9divBORuNdiNtb7zktvotxjHcpzq6g0Em5Su5byXnrnYjegkLaLQqInoJC9jF9bsZbfqeCguIAmwXFkgCmRDhFtXvYr/G8ec79LXP6CFCMnNyviXo5xjW5zL/NDmEHVY0pzqHeLb8z4T+/X1A4xyhrQRHH3fote/xtfh7v2p/7m3mzPm/Loe9QyNjrgmJjbvl5u+buOr+Zk0G/ePDCKxR6wysUesMrFHrDKxR6wysUesMrFHrDKxR6wysUesMrFHrDKxR6wysUesMrFHrDKxR6wysUesMrFHrDKxR6wysUesMrFHrDKxR6wysUesMrFHrDKxR6wyskdBxfTPrvHjqS+mZB4R+bPwLlFxva5RYU3/QKh/BczjVSFEl/fBfj4HcovHaboT5+JQWFWyTIux1qv3cUFBQHKJN1IyVyVYK7k+y9uUlJYioUiudsElntk4uX7YKiOMa2kca0JrPOMUHcnrdVYxNbBcUsrodtd5ULihu7bortt3hXI/RfFg/F82/RoQXFPPj5XJbXTrFOZm3DvMIOpriz5yCdX69waIVXKPSGVyj0hlco9IZXKPSGVyj0hlco9IZXKPSGVyj0hlco9IZX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" alt="" />
配置好后,点击提交,会校验与服务器牵手动作,此时要保证服务地址能正常访问。
如不清楚的,请看下一步操作。
新建.netcore 项目与微信服务器牵手
新建.netcore api项目,项目结构如下图:
aaarticlea/png;base64,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" alt="" />
引用盛派Senparc组件:
Senparc.Weixin.MP.MVC
Senparc.Weixin.WxOpen
使用盛派Senparc组件配置文件如下:
"SenparcWeixinSetting": {
//微信全局
"IsDebug": true,
//公众号
"Token": "#Token#",
"EncodingAESKey": "#EncodingAESKey#",
"WeixinAppId": "#WeixinAppId#",
"WeixinAppSecret": "#WeixinAppSecret#",
"Items": {
"小程序1": {
"WxOpenAppId": "#WxOpenAppId#",
"WxOpenAppSecret": "#WxOpenAppSecret#",
"WxOpenToken": "#WxOpenToken#",
"WxOpenEncodingAESKey": "#WxOpenEncodingAESKey#"
},
"小程B": {
"WxOpenAppId": "#WxOpenAppId#",
"WxOpenAppSecret": "#WxOpenAppSecret#",
"WxOpenToken": "#WxOpenToken#",
"WxOpenEncodingAESKey": "#WxOpenEncodingAESKey#"
}
}
}
使用盛派Senparc组件必须先进行注册,在Startup类中ConfigureServices方法进行注册
services.AddSenparcGlobalServices(Configuration)
.AddSenparcWeixinServices(Configuration);
在Startup类中Configure方法进行使用
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IOptions<SenparcSetting> senparcSetting, IOptions<SenparcWeixinSetting> senparcWeixinSetting)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwaggerUIV2();
}
app.UseStaticHttpContext();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
#region 公众号,小程序
IRegisterService register = RegisterService.Start(env, senparcSetting.Value).UseSenparcGlobal(false, null);
register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value);
//配置
var bInfo = senparcWeixinSetting.Value.Items["appid"];
AccessTokenContainer.RegisterAsync(bInfo.WxOpenAppId, bInfo.WxOpenAppSecret, bInfo.WxOpenAppId);
//公众号
AccessTokenContainer.RegisterAsync(senparcWeixinSetting.Value.WeixinAppId, senparcWeixinSetting.Value.WeixinAppSecret, senparcWeixinSetting.Value.WeixinAppId);
#endregion
}
以上盛派Senparc组件的全局配置基本完成,可以开始写验证服务器的接口啦。
新建HomeController类
静态变量定义如下:
#region static
/// <summary>
/// 当前小程序的AppId
/// </summary>
public static readonly string AppId = Senparc.Weixin.Config.SenparcWeixinSetting.Items["appid"].WxOpenAppId;
/// <summary>
///
/// </summary>
public static readonly string Token = Senparc.Weixin.Config.SenparcWeixinSetting.Items[AppId].WxOpenToken;
/// <summary>
///
/// </summary>
public static readonly string EncodingAESKey = Senparc.Weixin.Config.SenparcWeixinSetting.Items[AppId].WxOpenEncodingAESKey;
#endregion
验证接口代码如下:
[HttpGet]
[ActionName("Index")]
public ActionResult Get(PostModel postModel, string echostr)
{
if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
{
return Content(echostr); //返回随机字符串则表示验证通过
}
else
{
return Content("failed:" + postModel.Signature + "," + Senparc.Weixin.MP.CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, Token) + "。" +
"如果你在浏览器中看到这句话,说明此地址可以被作为微信小程序后台的Url,请注意保持Token一致。1");
}
}
发布项目到生产环境,在次点击微信小程序后台开发者配置,点击提交,验证成功说明已经与服务器牵手成功。
开发者服务器自动回复
建立与开发者服务器成功后,在公众号,小程序客服等功能发送的消息都会先经过微信服务器,微信服务器将已POST的请求方式中转给我们配置的URL地址,收到指令后,我们开发者根据收到的类型消息进行处理。
统一处理消息的入口,代码如下:
[HttpPost]
[ActionName("Index")]
public ActionResult Post(PostModel postModel)
{
if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
{
return Content("参数错误!");
}
try
{
postModel.Token = Token;//根据自己后台的设置保持一致
postModel.EncodingAESKey = EncodingAESKey;//根据自己后台的设置保持一致
postModel.AppId = AppId;//根据自己后台的设置保持一致(必须提供)
var maxRecordCount = ;
var messageHandler = new CustomWxOpenMessageHandler(Request.GetRequestMemoryStream(), postModel, maxRecordCount);
messageHandler.Execute();//执行微信处理过程(关键)
var result = new FixWeixinBugWeixinResult(messageHandler);
return result;
}
catch (Exception ex)
{
Logger.Info("异常消息:" + ex.Message);
return Content("");
}
}
所有消息都会经过管道处理即CustomWxOpenMessageHandler方法,CustomWxOpenMessageHandler主要代码如下(遇到问题请与我联系):
public CustomWxOpenMessageHandler(Stream inputStream, PostModel postModel, int maxRecordCount = )
: base(inputStream, postModel, maxRecordCount)
{
//这里设置仅用于测试,实际开发可以在外部更全局的地方设置,
//比如MessageHandler<MessageContext>.GlobalGlobalMessageContext.ExpireMinutes = 3。
GlobalMessageContext.ExpireMinutes = ;
if (!string.IsNullOrEmpty(postModel.AppId))
{
appId = postModel.AppId;//通过第三方开放平台发送过来的请求
}
//在指定条件下,不使用消息去重
base.OmitRepeatedMessageFunc = requestMessage =>
{
var textRequestMessage = requestMessage as RequestMessageText;
if (textRequestMessage != null && textRequestMessage.Content == "容错")
{
return false;
}
return true;
};
}
自动回复处理方法,代码如下:
public override IResponseMessageBase OnEvent_UserEnterTempSessionRequest(RequestMessageEvent_UserEnterTempSession requestMessage)
{
//进入客服
var msg = @"欢迎您!这条消息来自服务器";
Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendText(appId, OpenId, msg);
return DefaultResponseMessage(requestMessage);
}
效果图如下:
各种消息类型处理
图片消息处理代码如下:
public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
{
//发来图片,进行处理
Task.Factory.StartNew(async () =>
{
await Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendTextAsync(appId, OpenId, "刚才您发送了这张图片:");
await Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendImageAsync(appId, OpenId, requestMessage.MediaId);
});
return DefaultResponseMessage(requestMessage);
}
文字消息处理代码如下:
public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
{
if (contentUpper == "")
{
var uploadResult = Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadTemporaryMedia(appId, UploadMediaFileType.image, ServerUtility.ContentRootMapPath("~/wwwroot/imgs/fwh.jpg"));
Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendImage(appId, OpenId, uploadResult.media_id);
}
else
{
var msg = "亲,回复“1”,关注服务号。";
Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendText(appId, OpenId, msg);
}
return new SuccessResponseMessage();
}
统一默认处理,代码如下:
public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage)
{
return new SuccessResponseMessage();
}
总结
盛派Senparc组件适用于快速开发项目,个人觉得还是很方便的,如果想进一步了解底层,可以看底层接口,其实就是请求的微信的相关接口,处理返回的结果进行了封装,如有在小程序开发过程中遇到任何问题可与我联系
作者:Dylan
公众号:dotNET名人堂(sharecore)
微信:tangguo_9669
QQ:.NET Core 技术交流(18362376)
出处:https://www.cnblogs.com/hailang8/
本文文章版权归作者和博客园共有,未经作者同意不得随意转载,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请与我联系。
- .NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息)
基于上一篇文件“.NET Core 小程序开发零基础系列(1)——开发者启用并校验牵手成功”的反映,个人觉得效果很不错,大家对公众号开发还是有很大需求的,同时也收到了很多同学的问题,后面我也会通过实战 ...
- 微信小程序开发入门教程
做任何程序开发要首先找到其官方文档,微信小程序目前还在邀请内测阶段,目前官方放出了部分开发文档,经过笔者一天的查看和尝试,感觉文档并不全面,但是通过这些文档已经能够看出其大概面貌了.闲话不多说,我们先 ...
- 微信小程序开发(二)认识开发工具
腾讯微信团队提供非常优秀的微信小程序开发工具,大大降低了开发者的入门门槛,为他们点赞!上一篇文章已经说明了,如何注册及下载开发工具,现在我们就来一起认识见识一下开发工具的庐山真面目. 首次打开这个开发 ...
- 零基础入门微信小程序开发
注:本文来源于:<零基础入门微信小程序开发> 课程介绍 本达人课是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件.页面样式文件.Ja ...
- 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)
大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...
- WordPress版微信小程序开发系列(二):安装使用问答
自WordPress版微信小程序发布开源以来,受关注的程度超过我原来的想象.这套程序主要面对的用户是wordpress网站的站长,如果wordpress站想在微信的生态圈得到推广,小程序成为一种重要的 ...
- 微信小程序开发系列五:微信小程序中如何响应用户输入事件
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- 微信小程序开发基础
前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...
随机推荐
- apache CXF Service 简单使用
cxf介绍 框架官网:cxf.apache.org 支持多种协议: SOAP1.1,1.2 XML/HTTP CORBA(Common Object Request Broker Architectu ...
- 原 docker 安装使用 solr
1.安装solr 7.5 docker solr 官网:https://hub.docker.com/_/solr/ docker pull solr:7.5.0 2.启动solr服务 docker ...
- JavaOOP 第二章继承
一 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具 ...
- Linux系统管理----目录与文件管理作业习题
chapter02 - 03 作业 1. 分别用cat \tac\nl三个命令查看文件/etc/ssh/sshd_config文件中的内容,并用自己的话总计出这三个文档操作命令的不同之处? cat ...
- 并发编程之Java内存模型
在介绍Java内存模型之前,先来了解一下为什么要有内存模型,以及内存模型是什么.然后我们基于对内存模型的了解,学习Java内存模型以及并发编程的三大特性. 为什么要有内存模型 在计算机中,所有的运算操 ...
- Downgrade extraction on phones running Android 7/8/9
Now it's more and more difficult for forensic tools to extract evidence from smartphone running Andr ...
- Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文
前言 之前也分享了不少自己的文章,但是对于 Flink 来说,还是有不少新入门的朋友,这里给大家分享点 Flink 相关的资料(国外数据 pdf 和流处理相关的 Paper),期望可以帮你更好的理解 ...
- 微服务世界之Nacos初见
Nacos 1.概要 Dubbo 服务的注册和发现/rpc通信/负载均衡/限流/熔断/降级 Spring Cloud alibaba 服务注册发现中间件 zookeeper/eureka/consul ...
- java中线程安全,线程死锁,线程通信快速入门
一:多线程安全问题 ###1 引入 /* * 多线程并发访问同一个数据资源 * 3个线程,对一个票资源,出售 */ public class ThreadDemo { public static vo ...
- 新手的java学习建议
前言 进入IT领域,就像进入大海—浩瀚而广阔.然而,它又很容易让人迷茫,不知所措.所以,在IT的海洋中,找好一艘船特别重要,这艘船带你前进.减少迷失.这艘船或许是一个人,或一本书,又或许是一篇文章. ...