微信公众平台开发之认证”成为开发者”.Net代码解析

yizhihongxing

下面我将详细讲解“微信公众平台开发之认证"成为开发者".Net代码解析”的完整攻略,步骤如下:

1. 开发者认证流程

1.1 注册成为微信公众平台开发者

首先,您需要在微信公众平台官网上注册成为微信公众平台开发者。

1.2 填写开发者信息

在注册完成后,您需要完善开发者信息,包括公司或个人信息、公众号信息等。

1.3 提交资质信息

提交公众号的资质信息,包括主体资质和认证资质。其中,主体资质指公众号所属主体的资质信息,认证资质指公众号所需认证的资质信息。

1.4 等待审核

提交资质信息后,需要等待微信官方审核。一般情况下,审核时间为1-3个工作日。

1.5 认证成功

审核通过后,您就可以进入微信公众平台开发者后台进行相关操作,接入微信公众号功能。

2.微信公众平台开发之认证“.Net代码解析”

2.1 准备工作

2.1.1 创建项目

在Visual Studio中创建一个Web应用程序,使用MVC模板。

2.1.2 引入必要的包

在项目中安装官方开发工具包

2.1.3 添加Web.config文件

在Web.config文件中配置微信公众号相关信息。

<appSettings>
    <add key="WeixinAppId" value="填写您的公众号AppId" />
    <add key="WeixinAppSecret" value="填写您的公众号AppSecret" />
    <add key="WeixinToken" value="填写您的公众号Token" />
    <add key="WeixinEncodingAESKey" value="填写您的公众号EncodingAESKey" />
</appSettings>

2.2 实现代码

2.2.1 创建控制器

创建一个名为WeChatController的控制器,并添加Index方法和CheckSignature方法。

public ActionResult Index()
{
    if (Request.HttpMethod.ToUpper() == "POST")
    {
        // 接收微信服务器发送的数据
        var inputStream = Request.InputStream;
        var rawData = new byte[inputStream.Length];
        inputStream.Read(rawData, 0, rawData.Length);
        var messageBody = Encoding.UTF8.GetString(rawData);

        // 处理微信服务器发送的消息
        var messageHandler = new CustomMessageHandler(Request.InputStream, null);
        messageHandler.Execute();

        return Content("");
    }
    else
    {
        // 微信服务器认证
        var signature = Request["signature"];
        var timestamp = Request["timestamp"];
        var nonce = Request["nonce"];
        var echostr = Request["echostr"];

        if (CheckSignature(signature, timestamp, nonce))
        {
            return Content(echostr);
        }
        else
        {
            return Content("Error");
        }
    }
}

// 验证微信服务器签名
private bool CheckSignature(string signature, string timestamp, string nonce)
{
    var token = ConfigurationManager.AppSettings["WeixinToken"];
    var array = new[] { token, timestamp, nonce }.OrderBy(s => s).ToArray();
    var str = string.Join("", array);
    var sig = FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1");

    return sig.ToLower() == signature.ToLower();
}

2.2.2 创建消息处理类

创建一个名为CustomMessageHandler的消息处理类,并继承自MessageHandler<CustomMessageContext>。在该类中实现具体的消息处理逻辑。

public class CustomMessageHandler : MessageHandler<CustomMessageContext>
{
    public CustomMessageHandler(Stream inputStream, XuHos.BLL.WeChat.MsgLogService msgLogger)
        : base(inputStream, msgLogger)
    {

    }

    protected override void OnTextRequest(RequestMessageText requestMessage)
    {
        var responseMessage = CreateResponseMessage<ResponseMessageText>();
        responseMessage.Content = "您发送的消息是:" + requestMessage.Content;
        ResponseMessage = responseMessage;
    }
}

2.3 调试运行

在浏览器中输入http://localhost:port/WeChat/Index,将项目运行起来并与微信公众号进行接入。接入成功后,便可以与微信公众号进行互动并处理用户发送的消息。

以上就是“微信公众平台开发之认证“成为开发者” .Net代码解析”的完整攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微信公众平台开发之认证”成为开发者”.Net代码解析 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • asp.net SqlHelper数据访问层的使用

    作为网站的作者,关于asp.net SqlHelper数据访问层的使用,建议按照以下步骤进行: 步骤一:安装SqlHelper NuGet包 作为Sql Server数据访问层的封装,SqlHelper NuGet包能够帮助我们在asp.net应用程序中快速构建数据访问层。所以在开始本攻略前,最好先确认你已经安装了SqlHelper NuGet包。如果没有安…

    C# 2023年6月3日
    00
  • Quartz.Net任务和触发器实现方法详解

    Quartz.Net任务和触发器实现方法详解 什么是Quartz.Net Quartz.Net是一款开源的作业调度框架,可以让开发者方便地实现基于时间的调度任务。它支持丰富的调度方式(间隔调度、CRON表达式等),并提供了丰富的API,使得开发者能够更加灵活地进行任务调度。 Quartz.Net的主要组件 Quartz.Net主要由以下几个组件构成: Sch…

    C# 2023年5月31日
    00
  • C#停止线程的方法

    C#中停止线程的方法主要有三种: 1. 使用Thread.Abort()方法 可以使用Thread.Abort()方法终止线程,但这是一种比较粗暴的方式,不太推荐使用,因为它可能会引发一些问题,例如无法释放线程所占用的资源、无法结束事务等。 示例代码: Thread thread = new Thread(new ThreadStart(DoWork)); …

    C# 2023年6月1日
    00
  • WPF+ASP.NET SignalR实现简易在线聊天功能的示例代码

    下面我将为你详细讲解如何通过WPF和ASP.NET SignalR实现简易在线聊天功能的示例代码。 准备工作 首先,需要保证电脑上安装了Visual Studio,并已经安装了.NET框架、WPF相关开发环境以及SignalR的相关NuGet包。 其次,需要创建一个新的WPF项目,为了方便,我们将这个项目命名为WpfSignalRChatDemo。 添加WP…

    C# 2023年6月3日
    00
  • C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(下)

    下面是详细的攻略: C#Dynamic之:ExpandoObject,DynamicObject,DynamicMetaObject的应用(下) 一、ExpandoObject ExpandoObject是一个动态类型,它允许我们在运行时添加或删除属性,甚至可以动态更改属性的类型。ExpandoObject非常方便,可以用来处理一些未知的数据结构。 1. 添…

    C# 2023年5月15日
    00
  • C#中ArrayList 类的使用详解

    C#中ArrayList 类的使用详解 在C#语言中,ArrayList类是一个非常重要的类,它允许我们在一个集合中存储对象数组。ArrayList类在.NET Framework中作为一个动态数组使用,这就意味着可以在运行时自由地增加或者减少数组的大小,而且类型也是可以变化的。下面我们来详细分析ArrayList类的使用方法。 初始化ArrayList类 …

    C# 2023年6月3日
    00
  • asp.net 错误:0x8007000B 异常的解决方法

    针对”asp.net错误: 0x8007000B”异常的解决方法,我可以提供以下攻略: 1. 了解错误 在解决问题之前,首先需要了解错误的原因和表现。”0x8007000B”错误通常代表着”An attempt was made to load a program with an incorrect format.” 这个错误可能由于多种原因引起,比如操作系…

    C# 2023年5月15日
    00
  • C#编程自学之数据类型和变量二

    C#编程自学之数据类型和变量二 总体思路 回顾C#中常用的数据类型和变量声明方法 学习如何将变量转换成其他数据类型 实践编写几个示例程序,加深对知识点的理解和应用能力 回顾常用的数据类型和变量声明 C#中常用的数据类型有: 整型:sbyte、byte、short、ushort、int、uint、long、ulong 浮点型:float、double、deci…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部