• 实现虽易,写好不易——小玩意也能体现编码功力,微信消息处理框架发布


    最近在接手同事之前写的代码,关于微信接口开发的,花了点时间把它整理成了一个类库,但是为了显得高大上,冠了一个框架之名。然后写下这么一篇文章:

    代码重构之 —— 一堆if、esle 逻辑的处理

    有朋友说我写这个,牛刀杀鸡,但是如果我连鸡都杀不了,怎么能够让别人相信我能杀牛呢。尽管它是个小类库,但是并一定能把它写好,如果你有更好的方案,欢迎讨论,但不要人身攻击。谢谢。

    也有人说,把功能实现不就得了,管它代码的好坏呢。如果你是老板,你可以不关心它,如果你是客户,你更不需要担心它。但是,如果作为技术人员,尤其是技术部门的管理人员,你不关心它,最后代码乱到没法维护,错误频频发生,这个板子肯定是要打到你的屁股上的。题外说完,下面说一下这个类库。

    一、为什么要使用它

    使用这个框架来开发,是不是就不需要了解微信的接口呢?不!你仍然需要了解微信消息的通信机制和它的接口,只有你清楚了解了这些,才能用好这个类库。使用这个类库的好处是,可以规范你所写的代码,使得你所写的代码更易于维护。 

    二、它封装了哪些接口

    现在只是封装了消息处理的部份的接口。

    即:接叫消息和发送消息的大部份接口。

    三、使用指南  

    1、在使用这个类库之前,你得首先注册一个微信的公众帐号,你可以到 mp.weixin.qq.com 注册。如果你已经注册完成了,请忽略。

    2、点击 微信消处理框架 下载,然后解压缩。打开项目进行编译。另外:项目托管在CodePlex上了,可以到 http://wx.codeplex.com/ 下载最新的。 

    3、创建一个 Web 项目,然后引用 WeiXin.dll。


    现在已经转移动GitHub了,https://github.com/ansiboy/YuChang

    4、创建一个 Generic Handler 文件,例如:MessageReceiver.ashx。

    5、在该文件的代码如下所示,其中的 Token 值,你可以自行设定,在这里是 5201314 。

    <%@ WebHandler Language="C#" Class="WeiXin.MessageReceiver" %>
    #define TRACE
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Diagnostics;
    using System.IO;
    using System.Xml;
    using WeiXin;
    using WeiXin.Models;
    
    namespace WeiXin
    {
        public class MessageReceiver : IHttpHandler
        {
            public MessageReceiver()
            {
    
            }
    
            public void ProcessRequest(HttpContext context)
            {
                const string TOKEN = "5201314";
                var handler = new WeiXin.HttpHandler(TOKEN, new MessageProcesser());
                handler.Process(context.Request, context.Response);
            }
    
            public virtual bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }

    6、把该文件上传到空间上,假设路径是 “http://wx.alinq.org/Test/MessageReceiver.ashx” 。

    7、登录微信公众平台,先申请一个测试的账号,然后在服务配置上填上下面的信息。

    9、现在我们打开微信,扫一下公众账号,看有什么响应。

    扫完后,在微信的界面上将会显示下面的信息:

    10、重写 MessageProcesser 类,来实现回复自定义的消息。创建 MessageProcesser 继承类命名为 MyMessageProcesser ,例如 

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using WeiXin.Models;
    
    public class MyMessageProcesser : WeiXin.MessageProcesser
    {
        public MyMessageProcesser()
        {
        }
    
        protected override ReplyMessage ProcessSubscribeEvent(SubscribeEvent msg)
        {
            var reply = new TextReply(msg);
            reply.Content = "你好,欢迎关注";
            return reply;
        }
    
        protected override ReplyMessage ProcessUnsubscribeEvent(UnsubscribeEvent msg)
        {
            var reply = new TextReply(msg);
            reply.Content = "取消关注";
            return reply;
        }
    }

    然后修改 MessageReceiver.ashx 文件的代码,把

    var handler = new WeiXin.HttpHandler(TOKEN, new MessageProcesser());

    改为:

    var handler = new WeiXin.HttpHandler(TOKEN, new MyMessageProcesser());

    11、现在我们再来扫一扫,看看有什么效果,当然,在扫之前请先取消关注,你会发现,回复变成了“你好,欢迎关注”。

    大家如果对我做的东西感兴趣,可以和我联系:

    QQ: 81932759

    Q群: 71418067

    上海的朋友,可以扫一扫下这面这个公众号。

  • 相关阅读:
    fatal error C1902: 程序数据库管理器不匹配;请检查安装 (zz)
    c++ std string reserve 测试
    2018年长沙理工大学第十三届程序设计竞赛
    2018年东北农业大学春季校赛
    从本质看海明码——海明码的由来
    CodeForces475
    一维背包问题
    2018年长沙理工大学第十三届程序设计竞赛 箱庭的股市
    高精度加法模板
    for,while,do while
  • 原文地址:https://www.cnblogs.com/ansiboy/p/3745602.html
Copyright © 2020-2023  润新知