C#(CSharp) 微信公众号开发一 基本配置

news/2024/11/8 5:50:18/

准备工作:

打开官网创建自己的微信公众号 官网

创建公众号完成打开基本配置->填写服务器配置

1.

说明:

URL: 填写自己的服务器的地址,可以接收到微信服务器发送的信息                                                笔者使用腾讯云的云服务器,新手还挺便宜的 腾讯云官网

Token: 用来验证微信发送的信息和获得公众号的Access_Token

EncodingAESKey: 加密密钥,微信回通过这个密钥把数据加密后,把数据传送给自己的服务器,自己的服务器需要通过这个密钥加密(前提是开启了安全模式),如果是明文模式不需要使用加密加密

消息加密解密方式:   明文模式:传送的数据不加密,直接传送,缺点就是不安全,容易被盗

                                 安全模式:微信回把数据进行EncodingAESKey这个密钥加密后传递给自己的服务器,服务器收到数据需要解密,这个安全系数高,传送的都是密文

 2.

配置完成之后,提交微信服务器需要验证自己的服务器地址是否可用

微信服务器会给URL这个服务器地址发送一个Get请求

参数内容:

参数描述
signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp时间戳
nonce随机数
echostr随机字符串

 验证这个信息是微信服务器发送过来的验证信息

方法一:

1)将token、timestamp、nonce三个参数进行字典序排序

2)将三个参数字符串拼接成一个字符串进行sha1加密 

 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

  static void Main(string[] args){if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))AddAddress("http://+:8080/WeChatThePublic/");HttpListener httpListener = new HttpListener();httpListener.AuthenticationSchemes = AuthenticationSchemes.Anonymous;//指定身份验证 Anonymous匿名访问httpListener.Prefixes.Add("http://+:8080/WeChatThePublic/");//绑定地址httpListener.UnsafeConnectionNtlmAuthentication = true;httpListener.Start();while (true){var context = httpListener.GetContext();//接受HTTP信息HttpListenerRequest aaa = context.Request;Console.WriteLine(aaa.HttpMethod);switch (aaa.HttpMethod){case "GET"://这个是认证服务器的CheckServer(context, aaa);break;}}}private static void CheckServer(HttpListenerContext context, HttpListenerRequest aaa){string signature = aaa.QueryString["signature"];string timestamp = aaa.QueryString["timestamp"];string nonce = aaa.QueryString["nonce"];string echostr = aaa.QueryString["echostr"];string[] strs = new string[] { "4", timestamp, nonce };Array.Sort(strs);string j = string.Join("", strs);//创建SHA1加密算法对象SHA1 sha1 = SHA1.Create();//将原始密码转换为字节数组byte[] originalPwd = Encoding.UTF8.GetBytes(j);//加密byte[] key = sha1.ComputeHash(originalPwd);StringBuilder sub = new StringBuilder();foreach (var t in key){sub.Append(t.ToString("x2"));//转16进行显示}//如果加密后的信息等于signature,就是微信发送的信息if (string.Equals(sub.ToString(), signature, StringComparison.InvariantCultureIgnoreCase)){using (var response = context.Response){//是微信的服务器发送的信息,就把这个信息返给他response.OutputStream.Write(Encoding.UTF8.GetBytes(echostr));}}}

 

方法二:

你可以直接把echostr这个值直接返回给微信服务器通过验证,但是这么做的话,以后有服务器发送了Get请求,就不知道是哪个服务器发送的啦

 static void Main(string[] args){if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))AddAddress("http://+:8080/WeChatThePublic/");HttpListener httpListener = new HttpListener();httpListener.AuthenticationSchemes = AuthenticationSchemes.Anonymous;//指定身份验证 Anonymous匿名访问httpListener.Prefixes.Add("http://+:8080/WeChatThePublic/");//绑定地址httpListener.UnsafeConnectionNtlmAuthentication = true;httpListener.Start();while (true){var context = httpListener.GetContext();//接受HTTP信息HttpListenerRequest aaa = context.Request;Console.WriteLine(aaa.HttpMethod);switch (aaa.HttpMethod){case "GET"://这个是认证服务器的CheckServer(context, aaa);break;}}}private static void CheckServer(HttpListenerContext context, HttpListenerRequest aaa){string signature = aaa.QueryString["signature"];string timestamp = aaa.QueryString["timestamp"];string nonce = aaa.QueryString["nonce"];string echostr = aaa.QueryString["echostr"];using (var response = context.Response){//是微信的服务器发送的信息,就把这个信息返给他response.OutputStream.Write(Encoding.UTF8.GetBytes(echostr));}}

 这样就可以通过微信的验证啦

关注微信公众号【浪子独白】 回复 “c#微信公众号源码”

可以获得本人封装一套微信公众号开发源码!


http://www.ppmy.cn/news/234645.html

相关文章

微信短信显示服务器解包异常,图解微信常见帐号异常处理办法

你有遇到过微信帐号异常的问题吗?介绍微信账号常见异常的处理办法。下面是学习啦小编收集整理的图解微信常见帐号异常处理办法,希望对大家有帮助~~ 图解微信常见帐号异常处理办法 微信帐号被盗或登录提示密码错误问题 1提示异常登录,如下图所示&#xf…

微信支付和微信红包设计用例

微信支付 功能 扫二维码 1.第一次扫描付钱二维码时可以得到相机权限,进入付钱界面 2.第一次扫描付钱二维码时可以拒绝相机权限,退回聊天界面 3.扫一扫可以扫描收钱的二维码 4.扫描出来的信息与收钱人信息相符 5.输入框只能输入数字 6.一次能支付…

基于微信小程序的线上点餐平台

基于微信小程序的线上点餐平台 1、项目设计的初步思路2 系统分析2.1 系统需求分析2.2 产品结构分析2.3 技术可行分析 3 系统设计3.1 设计目标3.2 系统功能分析3.3 非功能需求3.4 技术介绍3.4.1 Nginx3.4.2 Tomcat3.4.3 redis3.4.4 MySQL 3.5 系统技术选型3.5.1 前端…

c语言里1300错误咋剞劂,手机微信怎么设置账号密码错误怎么办

1. 为什么手机登陆微信总显示帐号或密码错误 可能是密码操作错误,可以重新设置一个新的密码: 1、打开微信进入登陆窗口,然后点击下面的【遇到登陆问题】。 2、接着来到新窗口选择第一个【找回微信密码】功能进入。 3、在找回密码方式页面选择…

微信公众号开发模式之用户账号绑定

为什么80%的码农都做不了架构师?>>> 公司需要微信这个平台和用户交流,于是开始研究微信公众平台。微信公众平台分为两种模式,其一是编辑模式,比如用户发什么内容,你可以响应什么内容。另外一种便是开发模式…

手机上微信总是说无法连接服务器错误代码,微信登录失败怎么办|微信登录失败常见提示及处理方法...

微信登陆失败怎么办?很多朋友都遇到微信登陆失败的提示。极光小编为大家总结了微信登录失败常见提示及处理方法,希望对大家有帮助。 类别: 社交通讯 大小:185.7M 语言: 简体中文 微信登录失败常见提示及处理方法…

微信开发教程:用户账号绑定到微信公众号的方法分享

最近由于工作需要,接触了微信公众号的开发。业务上要求绑定微信用户和系统用户,以便用户在一次绑定后能够通过系统用户的身份去使用一些功能。我关注的招行信用卡公众号实现了这个功能,所以估计还是可行的,在网上搜索了一下&#…

微信京东手机怎么联系客服人工服务器,微信人工客服电话是多少?打不通怎么办?...

全网最新活动请看下方内容或右侧内容! --------------- 微信业务实在是太广泛了,不少孩子也喜欢拿大人的手机玩,可是玩着玩着可能就有一些游戏需要充值,孩子们不懂便充值了,这时就会急需要联系微信人工客服,那么人工客服电话是多少呢? 一般腾讯客服上班时间是9:00~22:00…