博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Senparc.Weixin.MP SDK 微信公众平台开发教程(五):使用Senparc.Weixin.MP SDK
阅读量:6867 次
发布时间:2019-06-26

本文共 2793 字,大约阅读时间需要 9 分钟。

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

    整个项目的源代码以及已经编译好的程序集可以在这个项目中获取到:

 

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

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

    MVC:

    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项目地址:

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

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

    如果是第一次安装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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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,建议设置地复杂一些
 
        
/// <summary>
        
/// 微信后台验证地址(使用Get),微信后台的“接口配置信息”的Url填写如:
        
/// </summary>
        
[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的详细介绍可以看《》,也可以),所有处理微信消息的核心逻辑都被包含到CustomMessageHandler中执行。除了承担处理微信响应的任务,MessageHandler还实现了处理单个用户对话上下文等功能,非常方便。

 

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

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

    (如何在微信后台设置请看:)

 

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

转载地址:http://hrbfl.baihongyu.com/

你可能感兴趣的文章
oracle checkpoint
查看>>
KVM虚拟化开源高可用方案(六)ISCSI ON DRBD搭建及常见故障处理
查看>>
android device related
查看>>
iOS 6 Beta3即将发布,iPhone面板谍照已经曝光
查看>>
hadoop 源码包编译
查看>>
将HTML5 Canvas的内容保存为图片
查看>>
hdu2222 Keywords Search AC自动机
查看>>
网站的架构CS和中间件
查看>>
h5存储的优点
查看>>
Python基础之各种推导式玩法
查看>>
[HNOI/AHOI2017]影魔
查看>>
微信小程序-多级联动
查看>>
Ubuntu配置MYSQL远程连接
查看>>
docker-1-简介
查看>>
PAT 1020
查看>>
tcp端口扫描(python多线程)
查看>>
W3CSchool闯关笔记(Bootstrap)
查看>>
洛谷 P3742 umi的函数【构造】
查看>>
剑指offer-二叉树的镜像
查看>>
二叉树的创建,遍历完整代码
查看>>