php专区

 首页 > php专区 > PHP应用 > 开放平台 > Senparc.Weixin.MP SDK 微信公众平台开发教程(五):

Senparc.Weixin.MP SDK 微信公众平台开发教程(五):

分享到:
【字体:
导读:
          Senparc Weixin MP SDK已经涵盖了微信5 0的所有公共API,以及2013年10月29日升级之后大部分实用的接口。 整个项目的源代码以及已经编译好的程序集可以在这个项目中获取到:https: github com J...

Senparc.Weixin.MP SDK已经涵盖了微信5.0的所有公共API,以及2013年10月29日升级之后大部分实用的接口。

    整个项目的源代码以及已经编译好的程序集可以在这个项目中获取到:https://github.com/JeffreySu/WeiXinMPSDK

 

    我们现在从无到有建立一个ASP.NET MVC项目,来看一下如何与微信进行对接(Webforms原理也都是一样,只不过把Controller中的Action换成.aspx页面就可以了)。

    将要演示的项目源代码也可以在开源项目中找到(因为源代码中要兼顾2个项目,有一个公用项目,所以与下面展示的结构略有不同,逻辑完全一致):

    MVC:https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.Sample

    WebForms:https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.Sample.WebForms

 

第一步:建立一个空的ASP.NET MVC(4.0)项目,项目名称如Senparc.Weixin.MP.Sample

 

第二步:建立一个Controller,如WeixinController.cs

 

第三步:引入Senparc.Weixin.MP.dll

    引入相关dll的方式有两种:一种是复制dll到项目某文件夹中,然后直接在项目中添加Senparc.Weixin.MP.dllSenparc.Weixin.MP.MvcExtension.dll的引用(Senparc.Weixin.MP.MvcExtension.dll只有MVC项目需要,WebForms项目可以忽略),第二种方式我们可以使用Nuget直接安装到项目中。

    Nuget项目地址:https://www.nuget.org/packages/Senparc.Weixin.MP/

    第一种方式已经足够简单,这里介绍第二种:打开菜单【工具】> 【库程序包管理器】 > 【程序包管理器控制台】,如下图:

点击后将会出现程序包管理器控制台:

    如果是第一次安装Senparc.Weixin.MP库,则在PM>后面输入命令:

Install-Package Senparc.Weixin.MP

    回车,Senparc.Weixin.MP.dll将会被自动引入到项目中。

    如果以后需要更新到最新版本,只需要使用Update-Package命令,将会自动在线更新:

Update-Package Senparc.Weixin.MP

    以上操作对MVC和WebForms项目都有效。

    如果是MVC项目,为了获得更多针对MVC的扩展功能,我们可以继续引入Senparc.Weixin.MP.MvcExtension.dll

Install-Package Senparc.Weixin.MP.MVC

命令窗口输出结果如下,表示已经安装成功:

 

    我们观察一下项目引用的程序集,这两个dll已经被引用进来了:

 

第四步:修改WeixinController.cs

    我们将下列代码加入WeixinController.cs:

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Senparc.Weixin.MP.MvcExtension;
using Senparc.Weixin.MP.Sample.Weixin;

namespace Senparc.Weixin.MP.Sample.Controllers
{
    public class WeixinController : Controller
    {
        private const string Token = "weixin";//对应微信后台设置的Token,建议设置地复杂一些

        /// 
        /// 微信后台验证地址(使用Get),微信后台的“接口配置信息”的Url填写如:http://weixin.senparc.com/weixin
        /// 
        [HttpGet]
        [ActionName("Index")]
        public ActionResult Get(string signature, string timestamp, string nonce, string echostr)
        {
            if (CheckSignature.Check(signature, timestamp, nonce, Token))
            {
                return Content(echostr);//返回随机字符串则表示验证通过
            }
            else
            {
                return Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token));
            }
        }

        [HttpPost]
        [ActionName("Index")]
        public ActionResult Post(string signature, string timestamp, string nonce, string echostr)
        {
            if (!CheckSignature.Check(signature, timestamp, nonce, Token))
            {
                return Content("参数错误!");
            }

            var messageHandler = new CustomMessageHandler(Request.InputStream);//接收消息

            messageHandler.Execute();//执行微信处理过程

            return new WeixinResult(messageHandler);//返回结果
        }
    }
}
   第一个Get对应微信后台设置URL时候的请求,第二个Post用于接受么次转发过来的客户请求。

    其中CustomMessageHandler是我们自己创建的一个类,用于实现MessageHandler(有关MessageHandler的详细介绍可以看《Senparc.Weixin.MP SDK 微信公众平台开发教程(六):了解MessageHandler》,也可以看这里),所有处理微信消息的核心逻辑都被包含到CustomMessageHandler中执行。除了承担处理微信响应的任务,MessageHandler还实现了处理单个用户对话上下文等功能,非常方便。

 

    至此,整个Senparc.Weixin.MP SDK已经基本开发完毕,可以直接发布,并在微信后台使用“高级功能”对接了。

    例如上述代码,Url填写http://xxx/Weixin,Token填写weixin

    (如何在微信后台设置请看:Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证)

 

    接下去我们会介绍如何在MessageHandler中处理具体的微信请求(文字、图片、位置、语音等等)。

 

新浪微博:@苏震巍 QQ:498977166

http://szw.cnblogs.com/
研究、探讨ASP.NET
转载请注明出处和作者,谢谢!


分享到:
基于 IBM Bluemix 开发微信公共账号应用 ...
基本过程 在开发微信公众平台前,需要申请一个微信公共账号,此处不做赘述,笔者使用的微信公共账号名称为:"IBM蓝色精英",代号为:"IBM_BluElite"。如何申请微信公共账号,笔者不做赘述。 在 Bluemix 中开发微信公众平台主要包括如下步骤: 申请 Bluemix 账号 下载并安装 Cloud Foundry 程序 编制一个应...
Senparc.Weixin.MP SDK 微信公众平台开发...
=============  以下写于2013-07-20 =============      这一篇文章其实可以写在很前面,不过我还是希望开发者们尽多地了解清楚原理之后再下手。     通过上一篇Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证,我们已经使微信客户端发来的信息都可以转发到我们自己的服务器上。   ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……