微信公众平台开发之认证”成为开发者”.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日

相关文章

  • 详解.NET Core使用Quartz执行调度任务进阶

    在 .NET Core 中,可以使用 Quartz.NET 来执行调度任务。Quartz.NET 是一个开源的作业调度框架,可以用于在 .NET 应用程序中执行定时任务、计划任务等。以下是详解 .NET Core 使用 Quartz 执行调度任务进阶的完整攻略: 步骤一:安装 Quartz.NET 在 .NET Core 项目中,可以使用 NuGet 包管理…

    C# 2023年5月17日
    00
  • javascript 节点排序实现代码

    下面是关于“javascript 节点排序实现代码”的完整攻略。 一、准备要排序的节点 首先,需要获取需要排序的节点,并将它们存入到一个数组中,以便进行排序操作。可以通过以下方式获取需要排序的节点: const nodes = document.querySelectorAll(‘.node’); // 获取所有需要排序的节点 二、将节点进行排序操作 在获取…

    C# 2023年6月8日
    00
  • .Net6集成IdentityServer4 +AspNetCore Identity读取数据表用户且鉴权授权管理API

    .Net6集成IdentityServer4 +AspNetCore Identity读取数据表用户且鉴权授权管理API IdentityServer4是一个开源的身份验证和授权框架,它可以帮助我们轻松地实现单点登录和API访问控制。AspNetCore Identity是一个用于管理用户和角色的框架,它可以与IdentityServer4集成,实现用户身份…

    C# 2023年5月17日
    00
  • C# Directory.GetFiles()函数案例详解

    C# Directory.GetFiles()函数案例详解 1. 函数介绍 C# Directory.GetFiles() 函数是一个用于获取指定目录下的所有文件的方法。该方法接受一个目录路径作为参数,并返回一个字符串数组,包含了指定目录中所有文件的路径信息。 该函数的定义如下: public static string[] GetFiles(string …

    C# 2023年6月1日
    00
  • ASP.NET Core 实现自动刷新JWT Token

    在ASP.NET Core中,JWT(JSON Web Token)是一种常见的身份验证机制。JWT Token有一个过期时间,当Token过期时,用户需要重新登录以获取新的Token。本攻略将深入探讨如何在ASP.NET Core中实现自动刷新JWT Token,并提供两个示例说明。 实现自动刷新JWT Token 在ASP.NET Core中,您可以使用…

    C# 2023年5月17日
    00
  • c# .net 生成图片验证码的代码

    为了在C# .NET中生成图片验证码,我们可以遵循以下步骤: 步骤1:安装NuGet包 我们需要安装 ZXing 和 System.Drawing.Common 两个NuGet包,以便在C#代码中引用。 运行以下命令安装: Install-Package ZXing -Version 1.1.0 Install-Package System.Drawing.…

    C# 2023年5月31日
    00
  • ASP.NET Core MVC中的模型(Model)

    在本攻略中,我们将详细讲解ASP.NET Core MVC中的模型(Model),并提供两个示例说明。 什么是模型(Model)? 在ASP.NET Core MVC中,模型(Model)是表示应用程序数据的类或对象。模型通常包含与数据库表或其他数据源中的数据相对应的属性。模型还可以包含用于验证数据的方法和属性。 如何创建模型(Model)? 在ASP.NE…

    C# 2023年5月17日
    00
  • 如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)

    根据百度地图计算两地之间的驾驶距离,我们可以使用百度地图API中的“驾车路线规划”功能来实现。此功能需要使用开放平台提供的开发工具包,支持JavaScript和C#两种语言。 使用JavaScript实现计算距离 1. 引入百度地图API <script type=”text/javascript” src=”http://api.map.baidu.…

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