微信开发系列----01:成为开发者

利用第三方的SDKSenparc.Weixin.MP】来开发属于自己的微信公众号。

此项目的GitHub地址:https://github.com/Andyahui/xgyxsh_WeiXin

这个系列是自己做的一个dome,主要想通过这个练习理清微信开发的基本流程和网站开发的思路,学会在项目实战中学习知识,使自己朝大牛的路上更近一步。

废话不多说--进入主题。

一:开发工具大礼包

微信公众平台开发者API:    http://mp.weixin.qq.com/wiki/home/index.html

微信公众号平台接口调试工具: https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E8%B0%83%E8%AF%95&form=%E8%A7%86%E9%A2%91%E6%B6%88%E6%81%AF

  Senparc.Weixin.MP的github地址: https://github.com/JeffreySu/WeiXinMPSDK/

  Senparc.Weixin.MP的官方博客地址http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html

  Senparc.Weixin.MP的官方网页地址:http://weixin.senparc.com/QA

二:了解微信通信流程

我们知道只要关注微信公众号,就可以和公众号进行简单的通信;比如公众号发送新闻,用户点击微信公众号菜单得到一系列回复,这些就是简单的通信。

2.1--通信原理:

需要知道客户端发送的请求不是直接到达我们的网站服务器的,而是通过微信服务器转发的,我们的每一次和微信公众号互动都是通过微信的服务器来做中间人(这么叫),这样才能正常的进行一些简单的交互。交互是通过XML文件的格式来进行传递的,具体可以看大神的图。

这个图可以清楚的看到二者的通信过程,利用第三方的SDK可以把 2,4的流程简化,因为它进行了封装,我们需要做的就是 3 处理一些逻辑关系,调用第三方的SDK完成2,4的功能。

微信服务器和网站的通信-----XML   <微信开发者资料里面有具体的通信数据交互过程>

2.2--注意事项

  • 每条XML信息由大小限制,Content内容不要超过600字;

  • 步骤2之后微信服务器有个等待时间:5秒,时间内没有到底4,那么请求就会被关闭。
  • 同一个用户关注了两个不同的公众号,他会产生两个不同的OpenId;
  • CreateTime使用的是Unix时间,需要进行转换;
  • 保证官方API的节点顺序;
  • 上面的通信图是单项的,不会从网站向客户端主动推动消息,都是我们在客户端请求才响应得到的;

三:成为开发者

完成微信的开发,我们需要申请微信的公众号(服务号/订阅号)。这两者是有区别的,自己申请的时候就可以看到;由于我们是开发dome,所有就利用微信的测试号来完成就可以,将来部署的时候直接替换就可以。

测试号申请页面:  ttp://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

<直接通过微信扫码登陆就可以免费使用一年,基本的开发接口都有,足以完成常规的开发测试,特别的好。>

我们申请页面成功之后就可以看到具体的测试号信息接口配置信息,我们需要配置接口的信息;配置接口信息我们需要一个服务器和域名(可以是服务器的IP);

成为开发者的前提是:微信服务器向网站服务器发送GET请求,通过网站服务器将介绍到的随机字符串发送回微信服务器,这样就验证成功就可以成为开发者了。之后的每一次请求就是POST请求。

URL:  指能够接收处理微信服务器发送的GET/POST请求,且地址是存在的,可以通过浏览器访问的。特定到某个处理get请求的页面 .

Token:可由开发者任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。

3.1--完成认证

直接新建个空MVC4的项目,引用SDK,添加相应的引用,新建WeixinController控制器,填写下面的代码,直接发布就可以。不需要添加视图,部署到网站服务器上面就可以完成认证,成为开发者。

namespace XGY_WeiXin.Controllers
{
    /// <summary>
    /// 微信服务器发送的GET/POST请求,从这里在到别的地方去处理相应的逻辑。
    /// </summary>
    public class WeiXinController : Controller
    {
        public static readonly string Token = "xgyweixin"; //与微信公众账号后台的Token设置保持一致,区分大小写。        

        #region GET验证请求

        /// <summary>
        /// 微信后台验证地址(Get请求处理)
        /// </summary>
        [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 + "," +
                            CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, Token) + "。" +
                            "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。");
            }
        }
        #endregion
    }
}

将这样的项目发布到服务器部署,在URL和Token处填写相关的内容,看是否合格;本项目的填写URL:http:www.xgy.llili.cn/Weixin ,URL是具体到相关页面的,这样才会请求到具体的控制器。 Token: xgyweixin ,这个要和自己控制器里面填写的一样。

这样就成为了开发者,接下来就可以进行一系列相关的操作。利用SDK就可以完成微信的相关功能了。

----------------------------------------------- 明天继续 -----------------------------------------------------

时间: 2024-10-09 05:49:09

微信开发系列----01:成为开发者的相关文章

微信开发系列----01.开发者的资格

利用第三方的SDK[Senparc.Weixin.MP]来开发属于自己的微信公众号. 此项目的GitHub地址:https://github.com/Andyahui/xgyxsh_WeiXin 这个系列是自己做的一个dome,主要想通过这个练习理清微信开发的基本流程和网站开发的思路,学会在项目实战中学习知识,使自己朝大牛的路上更近一步. 废话不多说--进入主题. 一:开发工具大礼包 微信公众平台开发者API: 微信公众号平台接口调试工具: Senparc.Weixin.MP的github地址:

Force.com微信开发系列(六)客服接口

当用户主动发消息给微信公众账号的时候(包括发送信息.点击自定义菜单click事件.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数.此接口主要用于客服等有人工消息处理环节的功能,方便开发者提供更加优质的服务. 客服接口调用请求说明 客服接口调用的接口说明如下(http请求方式为POST),如果获取Access Token的方式

Force.com微信开发系列(二)用户消息处理

Force.com是国际知名的云平台公司,成功配置好Force.com作为微信公开号的服务端后,接下来需要的任务是处理用户发送的消息.当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL,通常有的消息类型有文本信息.图片信息.语音信息.视频信息.地理位置信息以及链接信息.关于每种消息的XML数据包的详细结构,请参见http://mp.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E6%94%B6%E6%99%AE

Force.com微信开发系列(五)自定义菜单进阶及语音识别

在上文里我们介绍了如何通过Force.com平台里为微信账号添加自定义菜单,本文里我们将进一步介绍如何查询菜单以及删除菜单的相关知识,最后会介绍微信平台如何进行语音识别的相关技术. 查询菜单 与创建菜单类似,查询菜单有自己的接口,其中ACESS_TOKEN需要通过前文介绍到的接口获取,通常2小时后会失效: https://api.weixin.qq.com/cgi-bin/menu/get?access_token=[ACCESS_TOKEN] 为此首先通过前文介绍到的获取Access_Toke

Force.com微信开发系列(四)申请Access Token及自定义菜单之创建菜单

在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒内失效,重复获取将导致上次获取的Token失效,本文将首先介绍如何获取Access Token,再介绍如何通过Access Token来在微信内添加自定义菜单(注意,开发者需要申请测试账号来测试自定义菜单,如何申请请参照前文). 申请Access Token 获取Access Token接口的网址如下: https://api.weixin.qq.com/c

《C#微信开发系列(4)-接收 / 返回文本消息》

4.0接收 / 返回文本消息 ①接收/返回文本消息原理说明 当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上,着手开发之前先行阅读微信公众平台接收普通消息微信开发文档,对微信的这种消息处理机制有一定了解之后再着手开发(微信开发接收普通消息开发文档) 注意点: 1.关于重试的消息排重,推荐使用msgid排重. 2.微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次.假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不

微信开发系列教程:(1)订阅号和服务号深入分析

微信开发系列教程,将以一个实际的微信平台项目为案例,深入浅出的讲解微信开发.应用各环节的实现方案和技术细节. 原创内容,欢迎转载,转载请注明出处. 首先在第1章节中,我们先理清什么是订阅号,什么又是服务号,以及两者的关键性区别. 订阅号和服务号统称为微信公众号. 订阅号强调媒体资讯属性,为会员提供信息订阅,适用于新闻传媒类企业.订阅号从某种意义上来讲,是拿来做内容的,如果你没有原创作品,对用户没有任何意义. 服务号强调服务和应用属性,旨在为会员提供服务并与之互动.支持所有微信高级接口,几乎所有的

《C#微信开发系列(2)-自定义菜单管理》

2.0自定义菜单管理 ①接口说明: 微信服务号聊天窗口下面的菜单项(有的公众号有启用有的则没有),这个可以在编辑模式简单配置,也可以在开发模式代码配置.微信公众平台开发者文档:微信公众号开发平台创建自定义菜单,可以看到创建菜单的一些注意事项,下面的使用网页调试工具调试该接口,只是调试接口是否可以正常调用,并不是直接创建菜单,根据微信自定义菜单管理文档菜单事件可分为两种: click: 用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event 的结构给开发者(参考消息接口指南

微信开发系列----02:实现POST请求响应

继续昨天的,现在我们的微信测试成功了,可以开发实现微信的各种功能,今天主要实现微信的简单交互,比如发送语音,图片,文本等请求,网站服务器发送对应的响应. 项目GitHub地址:  https://github.com/Andyahui/xgyxsh_WeiXin 一:微信XML的POST请求处理 昨天我们已经成为了开发者,说明get请求时可以到底,且是得到了相应的处理,下面是我们通过浏览器我们配置的URL浏览到的. 我们可以发现在get请求中设置的返回值在这里出现了,说明我们的测试是成功的.下面