我觉得做好成为开发者的准备比稀里糊涂开通微信后台的“高级”功能更重要,所以这一节先放在前面说。
作为开发者,我们需要面对的主要有两个对象:微信服务器和应用程序(网站)服务器。
当微信用户向你的公众平台发送一条消息,实际上这条消息首先发送到微信服务器,由微信服务器向网站服务器发起另外一个请求,网站服务器返回这个请求的结果,再由微信服务器发送到微信客户端。
整个消息通讯流程如下图:
上述5个步骤中,作为开发者我们主要精力都集中在步骤3上,这个步骤主实际上要有3项任务:
上述三项任务我会在后面做详细说明,并提供一整套简单、高效的处理方法。
用户使用微信客户端发送的不同类型的消息,网站服务器会收到不同格式的数据(文字、语音、图片等等),数据格式暂时只有XML一种。
作为学习,我觉得只要熟练掌握最简单的文字类型就可以了,其他的格式都是大同小异。且在后面的说明中你会发现,Senparc.Weixin.MP.dll可以帮助我们完全忽略这些繁琐的格式和定义。
一个简单的文字请求XML(RequestMessage)内容如下:
虽然整个通讯过程十分简单,但是官方API还是对一些字段做了特殊的约定或处理,况且面向过程地处理这么多类型的请求数据也是一件十分费力的事情。
为此我做了了一个开源项目:Senparc.Weixin.MP,地址:https://github.com/JeffreySu/WeiXinMPSDK/
Senparc.Weixin.MP的主要目的是帮助C#开发者简化整个通讯过程,面向对象地处理消息,把主要精力放到业务逻辑上,而非繁琐的API上。
使用Senparc.Weixin.MP,并部署到外网与微信服务器通讯,你需要准备这些环境:
这里先简单地引入Senparc.Weixin.MP这个项目的介绍,后面我会做更详细的说明并举例(https://github.com/JeffreySu/WeiXinMPSDK/ 里面也已经编写了足够多的使用文档和Demo可以参考)。