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

下面我将详细讲解“微信公众平台开发之认证"成为开发者".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日

相关文章

  • C#实现创建桌面快捷方式与添加网页到收藏夹的示例

    创建桌面快捷方式: 首先,需要添加System.Runtime.InteropServices命名空间和System.Drawing命名空间,以调用Shell32.dll中的方法和绘制图标。 using System.Runtime.InteropServices; using System.Drawing; 然后,使用DllImport属性声明需要调用的方…

    C# 2023年6月7日
    00
  • C# IsFixedSize:获取一个值,该值指示集合是否具有固定大小

    IsFixedSize 是 ICollection 接口的一种方法,其返回一个布尔值,指示集合是否具有固定大小。 语法 public bool IsFixedSize { get; } 返回值 方法返回一个布尔值,true表示集合大小是固定的;否则,false表示集合大小是可变的。 示例1 string[] languages = new string[] …

    C# 2023年4月19日
    00
  • C#实现定时关机小应用

    针对” C#实现定时关机小应用”,我们可以使用System.Diagnostics 命名空间中的Process类来实现。 首先,我们需要一个定时器来控制时间: using System.Windows.Forms; using System.Diagnostics; namespace ShutdownApp { public partial class M…

    C# 2023年6月1日
    00
  • abp(net core)+easyui+efcore实现仓储管理系统——模块管理升级(六十)

    Abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三)…

    C# 2023年4月18日
    00
  • 详解c# 强制转换和类型转换

    详解C#强制转换和类型转换的完整攻略 在C#中,强制转换和类型转换是将一种类型的数据转换为另一种类型的数据的两种方法。在使用这两种方法时,我们需要了解所用的数据类型和转换方法,并注意数据转换时可能产生的精度问题。 强制转换 强制转换通常发生在两种不兼容的数据类型之间,例如将一个浮点数转换为整数。在使用强制转换时,我们需要使用强制转换运算符,例如(int)、(…

    C# 2023年5月15日
    00
  • 如何通过C#/VB.NET 代码调整PDF文档的页边距

    PDF边距是页面主要内容区域和页面边缘之间的距离。与Word页边距不同,PDF文档的页边距很难更改。因为Adobe没有提供操作页边距的直接方法。但是,您可以通过缩放页面内容来改变页边距。本文将介绍如何在不更改页面大小的情况下使用C#/VB.NET 代码调整PDF文档的页边距。 增加PDF文档的页边距 缩短PDF文档的页边距 增加PDF文档的页边距 扩大PDF…

    C# 2023年4月27日
    00
  • C# using语法糖图文详解

    C#的using语法糖是一种方便管理资源的方法。它在代码块的开头定义资源,并在代码块结束时自动释放资源。该语法糖通常用于处理文件、网络连接、数据库连接和其它需要及时释放资源的对象。 定义和语法 using语法糖定义一个代码块,在该代码块开始处创建所需的资源,并在结束处释放资源。语法如下: using (resource) { // code } resour…

    C# 2023年5月31日
    00
  • asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式

    下面我将为你详细讲解asp.net生成高质量缩略图通用函数的攻略。 1. 简介 在很多网站中,我们经常需要使用到缩略图功能。ASP.NET提供了一种方便快捷的方法来生成缩略图。我们可以使用System.Drawing和System.Drawing.Imaging命名空间中的类来实现。这里,我们将制作一个通用函数,它支持多种生成方式,能够根据需要生成指定大小和…

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