微信公众平台开发技术-天气预报应用实例
原创学习目标
• 了解微信接入框架的概念。
• 了解阿里云 API 的调用方法。
• 熟悉微信应用的开发流程。
通过微信公众号,可以实现生活应用类服务。本章以天气预报为例,系统地介绍生活类应用的开发流程与实现过程。首先在开发者模式下建立微信公众号的开发接入,然后将天气预报数据呈现给用户。天气预报数据呈现的大致过程是,通过访问阿里云 API 市场的免费天气接口获取到天气预报数据,然后将数据进行消息处理,最后在微信公众号上进行显示。
阿里云是提供基础软件、企业软件、网站建设、云安全、数据及 API、解决方案等的各类软件和服务的平台。其中,数据及 API 中有大量可以使用的数据接口,主要包括金融理财、电子商务、人工智能、生活服务、交通地利、气象水利、企业管理、公共事务等大的分类。本章使用的是气象水利中免费的天气预报 API 接口。阿里云通过 API 接口方式提供气象数据服务的官方载体。
微信接入框架为方便微信公众平台的商家使用,网络上有一些流行的微信接入框架,有付费的,也有免费的,如 Weimob、微嗨(WeiHii)、Senparc 等。这里选用的是 Senparc 微信 SDK,这是一款开源的.NET 的微信接入框架,由苏州盛派网络科技有限公司研发出品,网址是 https://www.wechatadd.com/。
Senparc介绍Senparc.Weixin SDK 是由盛派网络(Senparc)团队自主研发的针对微信各模块的开发套件(C# SDK),已全面支持微信公众号、微信支付、企业号、开放平台、JS-SDK、摇一摇等模块。
Senparc 的业务主要有微信 SDK、微信开发问题社区、SDK WIKI 和供需平台 4 块内容。其中最主要的是微信 SDK,用户可以在微信 SDK 中下载所有的源代码以及 DEMO。
关键类说明Senparc 微信框架 SDK 主要是指 Senparc.Weixin.MP,这是该框架的核心。SDK 已经涵盖了微信 6.x 的所有公共 API。例如,Entities/Request*.cs 用于接收微信平台自动发送到服务器的实体(发送过来的是 XML),包括文本、位置、图片 3 类;Entities/Response*.cs 用于反馈给发送人信息实体(最终会转成 XML),包括文本、新闻(图文)两类;Helpers/EntityHelper.cs 用于实体和 XML 之间的转换(由于其中有许多需要特殊处理的字段和类型,因此这里不能简单地用 XML 序列化);Helpers/MsgTypeHelper.cs 用于获取消息类型;CheckSignature.cs 验证请求合法性类;Enums.cs 声明枚举;RequestMessageFactory.cs 用于自动生成不同 Request 类型的实体,并做必要的数据填充。
以下是在开发过程中常用的方法与类。
(1)生成验证字符串:Senparc.Weixin.MP.CheckSignature.GetSignature(string timestamp,string nonce, string token = null),返回根据微信平台提供的数据、SHA1 加密后的验证字符串(注意,token 必须与公众平台的设置一致)。
(2)验证请求:Senparc.Weixin.MP.CheckSignature.Check(string signature, string timestamp,string nonce, string token = null),验证请求是否合法。
(3)获取请求实体:var requestMessage = Senparc.Weixin.MP.RequestMessageFactory.GetRequestEntity(XDocument doc),根据不同请求的类型,自动生成可用于操作的实体(doc 只需要用 XDocument.Parse(xmlString)就能生成),requestMessage.MsgType 就是请求枚举类型。
(4)进行判断及各类操作。
(5)根据需要创建响应类型的实体,如「var responseMessage=ResponseMessageBase.CreateFromRequestMessage(requestMessage, ResponseMsgType.Text)as ResponseMessageText;」,即可返回文本类型信息。
注:v0.6 版本以后,此方法可以简写为如下形式:
var responseMessage = CreateResponseMessage<ResponseMessageText>();
(6)由于目前微信只接收 XML 的返回数据,所以在返回之前还需要做一次转换:XDocument responseDoc = Senparc.Weixin.MP.Helpers.EntityHelper. ConvertEntityToXml(responseMessage); var xmlString = responseDoc.ToString();
(7)至此,整个微信公众号的自动响应过程结束。
版权保护: 本文由 李斯特 原创,转载请保留链接: https://www.wechatadd.com/artdet/9562
- 上一篇:微信公众平台开发技术-获取关注者列表
- 下一篇:微信公众平台开发技术-引入说明
阅读推荐
更多...- 销售能力:找到特点优势,关键是萃取价值 2023-05-22
- 14个行业的微信营销与运营案例解读,南航:航空行业的微信营销与运营案例解读 2023-07-09
- 怎样判断你是否成为了销售精英呢?打造属于自己的销售神话 2023-04-14
- 创业过程中我的失败教训最值钱 2024-02-12
- 利用订阅号为客户提供增值服务,订阅号的运营核心:提供增值服务 2023-07-08
- 「销售团队管理」二审终审制:让每个人都大声说话 2023-03-04
- 抓住客户的真实需求「销售技巧」 2023-03-02
- 用提问让客户进入“我”的时间 2023-07-13
- 在自然状态下成交——销售技巧 2023-03-04
- 事件营销的常用技巧 2022-07-24
- 「销售团队管理」旅悦大学:塑造和传承铁军的「军魂」 2023-03-04
- [微信创业]微信创业的盈利模式,病毒营销 2023-07-12
- 营销活动要制订活动应急预案 2022-07-01
- 10大行业的微信营销与运营解决方案,电商行业的微信营销与运营解决方案 2023-07-09
- 企业遭遇瓶颈的现状,赢得客户的信任和认可,提高销售业绩 2023-04-01
- 典型问题应对:保证效果吗?不断提高您的销售技巧和业绩 2023-05-19
- 做一个会说话的销冠,远比你想象的容易,赢得客户的信任和认可,提高销售业绩 2023-04-14
- 成功销售来自一流口才,轻松增加您的销售利润 2023-04-01