千家信息网

如何利用asp.net开发微信公众平台之获取用户消息并处理

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍如何利用asp.net开发微信公众平台之获取用户消息并处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!获取用户消息用户发送的消息是在微信服务器发送的一个HTT
千家信息网最后更新 2025年01月20日如何利用asp.net开发微信公众平台之获取用户消息并处理

这篇文章主要介绍如何利用asp.net开发微信公众平台之获取用户消息并处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

获取用户消息

用户发送的消息是在微信服务器发送的一个HTTP POST请求中包含的,获取用户发送的消息要从POST请求的数据流中获取

微信服务器推送消息到服务器的HTTP请求报文示例

POST /cgi-bin/wxpush? msg_signature=477715d11cdb4164915debcba66cb864d751f3e6×tamp=1409659813&nonce=1372623149 HTTP/1.1

Host: qy.weixin.qq.com

从POST请求中获取数据

这样获得的用户消息可能有两种情况:加密后的消息或是未加密的消息,这与你在微信公共平台配置网站时 消息加解密模式的选取 有关,如果选择了明文模式,则不会加密,如果选择了兼容模式,则密文和明文都存在,如果选择的是安全模式,则用户消息会被加密,需要解密后才能进一步处理

2.回复用户消息

参考微信公共平台开发文档

•文本消息

   {2}   

•图片消息

   {2}     

消息格式已经有了,接着我们只需要设置相应的参数即可。

responseContent = string.Format(ReplyType.Message_Text,  FromUserName.InnerText,  ToUserName.InnerText, DateTime.Now.Ticks, String.IsNullOrEmpty(reply)?"Sorry,I can not follow you." :reply);

3.用户消息与服务器消息的加密解密

微信公共平台开发者文档中提供有c++,C#,java等各种语言的加密解密示例,我们用到的是C#,只需要将其中的两个文件添加到项目中即可,Sample.cs是微信团队给出的示例代码,不需要引用,对

WXBizMsgCrypt.cs与Cryptography.cs文件添加引用即可。为了进一步封装和方便调用,我又新建了一个类WeChatSecurityHelper

类中的定义两个方法,分别来进行加密(EncryptMsg)和解密(DecryptMsg),创建一个WXBizMsgCrypt对象,调用它的方法加解密,具体代码可见代码示例

WeChatSecurityHelper

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Common{  public class WeChatSecurityHelper  {    ///     /// 定义Token,与微信公共平台上的Token保持一致    ///     private const string Token = "StupidMe";    ///     /// AppId 要与 微信公共平台 上的 AppId 保持一致    ///     private const string AppId = "11111111111";    ///     /// 加密用     ///     private const string AESKey = "pvX2KZWRLQSkUAbvArgLSAxCwTtxgFWF3XOnJ9iEUMG";    private static Tencent.WXBizMsgCrypt wxcpt = new Tencent.WXBizMsgCrypt(Token, AESKey, AppId);    private string signature,timestamp,nonce;    private static LogHelper logger = new LogHelper(typeof(WeChatSecurityHelper));    public WeChatSecurityHelper(string signature, string timestamp, string nonce)    {      this.signature = signature;      this.timestamp = timestamp;      this.nonce = nonce;    }    ///     /// 加密消息    ///     /// 要加密的消息    /// 加密后的消息    public string EncryptMsg(string msg)    {      string encryptMsg="";      int result = wxcpt.EncryptMsg(msg, timestamp, nonce, ref encryptMsg);      if (result == 0)      {        return encryptMsg;      }      else      {        logger.Error("消息加密失败");        return "";      }    }    ///     /// 解密消息    ///     /// 消息体    /// 明文消息    public string DecryptMsg(string msg)    {      string decryptMsg = "";      int result = wxcpt.DecryptMsg(signature, timestamp, nonce, msg,ref decryptMsg);      if (result != 0)      {        logger.Error("消息解密失败,result:"+result);      }      return decryptMsg;    }  }}

以上是"如何利用asp.net开发微信公众平台之获取用户消息并处理"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

消息 加密 用户 平台 服务器 模式 示例 服务 处理 代码 明文 选择 公众 发微 一致 两个 内容 加密解密 数据 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中科服务器安全策略配置 海淀区专业网络技术服务软件 京东小程序服务器 服务器收到消息后的处理流程 mc正版的服务器 同行故意攻击服务器 关于网络安全的书法作品硬笔 幼儿园网络安全文明上网展板 查询某软件开发语言 签到日历链接数据库 网络安全保障自查工作报告 青少年网络安全意识建议 提升网络安全意识不容忽视 数据库技术与应用课后 阿里云有物理服务器托管 创客新零售系统软件开发 VBA中如何访问数据库 一梦江湖最早服务器 联通云服务器cpu型号 小程序云函数访问云数据库 打印机共享管理服务器不可用 此服务器以不安全的 鹿城区现代化刀片服务器不二之选 龙岗区网络技术诚信服务 黄岛区商城软件开发推荐 镇江创新软件开发诚信合作 计算机网络技术的宣传文案 中卫网络技术操作 群控服务器有什么区别 邓州市委网络安全
0