首先在威信后台填写服务器相关配置,这里按照说明直接填写就好了。配置提交前在需要在我们服务端先准备号接受微信请求的url,对请求内容做验证。

1、准备接口配置信息

A、服务器URL

该URL用于开发者接入时微信验证的GET请求地址,后继普通用户通过您的微信公众账号发送的信息或各种操作产生的事件,微信服务器也会转发并POST到这个URL上。这样您就可以根据不同的消息类型做URL路由,分别处理不同的消息或事件。要注意的是,目前只支持http方式,不支持https方式,而且只支持默认的80端口。

B、Token字符串

Token是用来生成签名的一个字符串,您可以随便填写(必须是英文字母或数字,最少3个字符,最多32个字符),只要你验证微信加密签名有效性时使用这个Token就可以了。它生成微信加密签名的一个参数,主要用于验证接入的安全性。

提示:如果您用的是测试号,配置上述信息即可;但如果是正式开发中,微信最新的要求还需要填写“消息加密密钥”并选择“消息加解密方式”。

C、消息加密密钥

消息加密密钥(EncodingAESKey)是微信最新的要求,其由43个字符组成,你可以自己手动填写,也可以点击“随机生成”。消息加密密钥只能是英文字母或数字,它的作用是“给消息体加密和解密”。

D、消息加解密方式

消息加解密的方式有三种,即“明文方式”、“兼容模式”和“安全模式”。

明文模式下消息加密密钥就废了,消息体不会使用上述密钥进行加密,安全系统较低;

兼容模式主要用于开发者调试程序,此时明明文和密文共同存在;

安全模式是微信推荐使用的方式,消息体被加密成纯密文,安全系统较高,但开发者需要自己加密和解密。

2、编写响应微信GET请求的代码

A、Get请求

// <summary>
/// 开发者指定的Token
/// </summary>
const string token = "pmlaomao"; public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain"; switch (context.Request.HttpMethod)
{
case "GET":
//接入成功后可以注释此行
JoinWeixin(context);
break;
case "POST":
//解析微信请求的XML消息文档
ParseXmlDocument(context);
break;
default:
context.Response.Write("不支持" + context.Request.HttpMethod + "方式!");
break;
} context.Response.End();
}

B、验证微信签名有效性

        /// <param name="signature">
/// 微信加密签名
/// <para>signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。</para>
/// </param>
/// <param name="timestamp">时间戳</param>
/// <param name="nonce">随机数</param>
/// <returns></returns>
private bool CheckSignature(string signature, string timestamp, string nonce)
{
string[] tmpArr = { token, timestamp, nonce };//将token、timestamp、nonce三个参数进行字典序排序
Array.Sort(tmpArr);
string tmpStr = string.Join("", tmpArr);
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//将三个参数字符串拼接成一个字符串进行sha1加密
tmpStr = tmpStr.ToLower(); return tmpStr == signature;//开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
}

C、原样返回echostr参数

/// <summary>
/// 接入微信
/// <para>返回echostr参数内容,则接入生效,否则接入失败。 </para>
/// </summary>
/// <param name="context"></param>
private void JoinWeixin(HttpContext context)
{
string signature = context.Request.QueryString["signature"];
string timestamp = context.Request.QueryString["timestamp"];
string nonce = context.Request.QueryString["nonce"];
string echostr = context.Request.QueryString["echostr"]; if (CheckSignature(signature, timestamp, nonce))
{
if (!string.IsNullOrEmpty(echostr))
{
context.Response.Write(echostr);
}
else
{
context.Response.Write("随机字符串为空!");
}
}
else
{
context.Response.Write("微信加密签名验证失败!");
} context.Response.End();
}

3、配置页面提交申请

完成上述代码编写并部署到您的服务器后,您就可以在微信公众平台“开发者中心”->“配置项”中填写上述准备好的接口配置信息,然后点击“提交”按钮将配置信息提交给微信服务器。微信服务器收到信息之后,会向您提交的URL地址发送一条GET请求.

完成上述工作后,在微信后台提交配置就可以进行验证,注意Token一定要与微信配置中的一直。

一般处理程序ashx接入微信服务器配置的更多相关文章

  1. .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转

    .net mvc 站点自带简易SSL加密传输   因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...

  2. 如何用Azure Web App Services接入微信公众号

    注:本文提到的代码示例下载地址>如何用Azure Web App Services接入微信公众号 如何用Azure Web App Services接入微信公众号 简介 此示例演示如何创建Azu ...

  3. 【微信Java开发 --2】接入微信公众平台开发,配置自己的服务器,验证过程

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑好我们就开始:1.填写好我们的URL和Token[此处是已经通过验证的] ...

  4. 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发

    第一部分:微信公众号对接的基本介绍 一.填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面. 选择 公众号基本设置->基本配置 ,点击“修改配置”按钮,填写服务器地址( ...

  5. 微信开发笔记(一)通过.net如何实现接入微信

    微信公众平台,给个人.企业和组织提供业务服务与用户管理能力的全新服务平台.现在基本上每个地方都可以看到微信存在,动不动就是让你扫一下加下微信. 经常遇到这样情况,“到一家餐馆吃饭,拿了个号,前台服务引 ...

  6. 1.Node.js 接入微信公众平台开发

    一.写在前面的话   Node.js是一个开放源代码.跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动.非阻塞和异步输入输出模型等技术来提高性能,可优化应用程 ...

  7. Java微信公众平台开发(一)--接入微信公众平台

    转自:http://www.cuiyongzhi.com/post/38.html (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当然是我们的官方文档了:http://mp.weixin ...

  8. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  9. 在Web应用中接入微信支付的流程之极简清晰版

    在Web应用中接入微信支付的流程之极简清晰版 背景: 在Web应用中接入微信支付,我以为只是调用几个API稍作调试即可. 没想到微信的API和官方文档里隐坑无数,致我抱着怀疑人生的心情悲愤踩遍了丫们布 ...

随机推荐

  1. 从URL输入到页面展现到底发生什么?DNS 解析&TCP 连接

    DNS 解析:将域名解析成 IP 地址 TCP 连接:TCP 三次握手 发送 HTTP 请求 服务器处理请求并返回 HTTP 报文 浏览器解析渲染页面 断开连接:TCP 四次挥手 一.什么是URL? ...

  2. CA周记 - Build 2022 上开发者最应关注的七大方向主要技术更新

    一年一度的 Microsoft Build 终于来了,带来了非常非常多的新技术和功能更新.不知道各位小伙伴有没有和我一样熬夜看了开幕式和五个核心主题的全过程呢?接下来我和大家来谈一下作为开发者最应关注 ...

  3. 20212115朱时鸿 《python程序设计》实验四报告

    课程:<Python程序设计>班级: 2121姓名: 朱时鸿学号:20212115实验教师:王志强实验日期:2022年5月28日必修/选修: 公选课 1.实验内容 Python综合应用:爬 ...

  4. java基础题(3)

    5.面向对象 5.1封装 5.1.1修改Data类的定义 描述 现有一个Data类,内部定义了属性x和y,在main方法中实例化了Data类,并计算了data对象中x和y的和.但是,Data类的定义存 ...

  5. SQL Server 2019企业版和标准版的区别?

    来源公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485400&idx=1&a ...

  6. 【Java面试】请说一下Mysql索引的优点和缺点?

    今天分享的这道面试题,让一个工作4年的小伙子去大众点评拿了60W年薪. 这道面试题是: "请你说一下Mysql索引的优点和缺点" 关于这道题,看看普通人和高手的回答 普通人: 嗯. ...

  7. Dubbo的基本使用

    Dubbo分为提供者和消费方  并且两者都要注册到ZK上 提供者 注解    @Service   这是dubbo包下的 消费组 注解    @Reference 远程注入 第一步导入依赖 <! ...

  8. 程序分析与优化 - 7 静态单赋值(SSA)

    本章是系列文章的第七章,终于来到了鼎鼎大名的SSA,SSA是编译器领域最伟大的发明之一,也是影响最广的发明. 本文中的所有内容来自学习DCC888的学习笔记或者自己理解的整理,如需转载请注明出处.周荣 ...

  9. MySQL 8.0 新特性梳理汇总

    一 历史版本发布回顾 从上图可以看出,基本遵循 5+3+3 模式 5---GA发布后,5年 就停止通用常规的更新了(功能不再更新了): 3---企业版的,+3年功能不再更新了: 3 ---完全停止更新 ...

  10. 用python整个URL缩短器

    URL缩短 短网址由于易于记忆和输入,因此在数字营销领域非常受欢迎. 这里给大家介绍一下,如何使用Python创建URL缩短器. python答疑 咨询 学习交流群2:660193417### fro ...