微信公众平台开发(一)——接入指南(asp.net)

第一步:申请消息接口

在公众平台网站的高级功能 – 开发模式页,点击“成为开发者”按钮,填写URL和Token,其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。

第二步:验证URL有效性

开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:

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

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

 1  /// <summary>
 2         /// 验证微信签名
 3         /// </summary>
 4         /// <returns></returns>
 5         /*
 6          * 加密/校验流程如下:
 7             1. 将token、timestamp、nonce三个参数进行字典序排序
 8             2. 将三个参数字符串拼接成一个字符串进行sha1加密
 9             3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
10          */
11         private bool CheckSignature(string strToken)
12         {
13             string signature = System.Web.HttpContext.Current.Request.QueryString["signature"].ToString();
14             string timestamp = System.Web.HttpContext.Current.Request.QueryString["timestamp"].ToString();
15             string nonce = System.Web.HttpContext.Current.Request.QueryString["nonce"].ToString();
16             string[] ArrTmp = { strToken, timestamp, nonce };
17             //1. 将token、timestamp、nonce三个参数进行字典序排序
18             Array.Sort(ArrTmp);
19             string tmpStr = string.Join("", ArrTmp);
20             //对该字符串进行sha1加密
21             tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
22             tmpStr = tmpStr.ToLower();//对字符串中的字母部分进行小写转换,非字母字符不作处理
23             if (tmpStr == signature)//开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。开发者通过检验signature对请求进行校验,若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败
24             {
25                 return true;
26             }
27             else
28                 return false;
29         }

 1  /*开发者通过检验signature对请求进行校验(下面有校验方式)。
 2          * 若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,
 3          * 则接入生效,成为开发者成功,否则接入失败。*/
 4
 5
 6         /// <summary>
 7         /// 返回echoStr
 8         /// </summary>
 9         public void Valid(string strToken)
10         {
11             if (System.Web.HttpContext.Current.Request.QueryString["echoStr"] != null)
12             {
13                 string echoStr = System.Web.HttpContext.Current.Request.QueryString["echoStr"].ToString();
14
15                 if (CheckSignature(strToken))
16                 {
17                     if (!string.IsNullOrEmpty(echoStr))
18                     {
19                         System.Web.HttpContext.Current.Response.Write(echoStr);
20                         System.Web.HttpContext.Current.Response.End();
21                     }
22                 }
23             }
24         }

第三步:成为开发者

验证URL有效性成功后即接入生效,成为开发者。如果公众号类型为服务号(订阅号只能使用普通消息接口),可以在公众平台网站中申请认证,认证成功的服务号将获得众多接口权限,以满足开发者需求。

此后用户每次向公众号发送消息、或者产生自定义菜单点击事件时,响应URL将得到推送。

公众号调用各接口时,一般会获得正确的结果,具体结果可见对应接口的说明。返回错误时,可根据返回码来查询错误原因。全局返回码说明

用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID。

此外请注意,微信公众号接口只支持80接口

时间: 2024-08-05 19:35:20

微信公众平台开发(一)——接入指南(asp.net)的相关文章

Spring Boot 2.X 微信公众平台开发之接入

声明 : 本系列纯属自己为了学习而编写,均已测试号为例,如果不正之处,恳请指正,谢谢! 接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 由于只是接入,只需要一个Controller的方法路径 和 定义一个token,可以写在配置文件里 2.验证服务器地址的有效性 /** * FileName: CoreController * Author: Phil * Date: 8/1/2018 15:52 * Description: 接入微信并处理消息事件 * History:

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

转自:http://www.cuiyongzhi.com/post/38.html (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当然是我们的官方文档了:http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html 通过文档我们可以看出其中接入微信公众平台开发,开发者需要按照如下步骤完成: 填写服务器配置 验证服务器地址的有效性 依据接口文档实现业务逻辑 按照上面的逻辑可能是填写服务器配置信息是在第一步,但

20160170002 微信公众平台开发接入指南

参考地址: http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html 接入指南 目录 1 概述 2 第一步:填写服务器配置 3 第二步:验证服务器地址的有效性 4 第三步:依据接口文档实现业务逻辑 概述 接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 下面详细介绍这3个步骤. 第一步:填写服务器配置 登录微信公众平台官网后,在公众平台

网络架构、云平台和微信公众平台开发接入

版权声明:本文为博主原创文章,未经博主允许不得转载. 云与后端相关的技术似乎并不属于嵌入式和物联智能硬件开发工程师的范畴,但是嵌入式开发工程师有必要认识成熟的网络架构和相关的云技术,以拓展自己在系统架构方面的视野.大数据分析是物联网背后的核心价值,物联智能硬件是物联大系统的终端,开发工程师不仅要深入精通物联技术,也应该去理解大系统,甚至整个生态领域的相关技术. 作为嵌入式开发工程师,也许并不需要熟悉云和后端的技术开发,但至少要对其中用到的技术和接口有一定的认识. 一.网络架构 常见的网络架构分为

微信公众平台开发(92) 多客服接入

关键字:微信公众平台开发 多客服作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-transfer-customer-service.html 在这篇微信公众平台开发教程中,我们将介绍如何使用开发模式实现多客服系统. 本文分为以下三个部分: 回复多客服消息 触发多客服会话 其他说明 一.回复多客服消息 在新的微信协议中,开发模式也可以接入客服系统. 开发者如果需要让用户使用客服系统,需要在接收到用户发送的消息时,返回一个MsgType为tran

微信公众平台开发配置项:Token验证

最近由于项目接触了下微信公众号,遇到了token验证失败的问题 ,微信公众号开发文档上示例是php,而且感觉有点混乱,网上百度了一些方案,但总感觉少点什么,所以写下自己解决的全过程,以供大家参考下,能或多或少的帮大家节约下时间.话不多说,我们看下面这张图, token验证失败,苦逼的只能继续看微信公众号开发文档,文档中接入指南是这么写的: 接入概述 接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 ...哇!!! 微

微信公众平台开发入门教程(图文)

关键字:微信公众平台开发入门 作者:C++研究室 背景知识:微信公众平台的开发需要有一定的PHP基础知识,PHP是一种HTML内嵌式的语言,广泛用于网站开发.微信服务器和开发者的服务器间有两种数据传输方式,分别是XML和JSON.其中XML主要用在接受发送普通消息和事件推送中,而用户管理.创建自定义菜单和高级群发等则需要用到JOSN格式数据. 在这篇微信公众平台开发教程中,你可以跟着教程一起在整体上感性了解微信公众平台的开发框架,可以帮助你更好的去入手. 我们将使用微信公众账号西安校园创客空间作

微信公众平台开发最佳实践(第2版)

<微信公众平台开发最佳实践 第2版>微信公众平台开发经典之作全新改版,精心挑选最经典的商业项目开发,成千上万人次微信公众平台开发者从中受益 前言 出版说明 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相关文章的日访问量高达2万人次,而<微信公众平台开发入门教程>的阅读量超过50万,博客访问量总计超过500万,成为微信公众平台开发更新最快,传播最广.受众最多.资料最全的博客,很多博文被许多有影响力的网站转载,并被各大搜索引擎收录且排名

第四篇 :微信公众平台开发实战Java版之完成消息接受与相应以及消息的处理

温馨提示: 这篇文章是依赖前几篇的文章的. 第一篇:微信公众平台开发实战之了解微信公众平台基础知识以及资料准备 第二篇 :微信公众平台开发实战之开启开发者模式,接入微信公众平台开发 第三篇 :微信公众平台开发实战之请求消息,响应消息以及事件消息类的封装 首先,我们看看原来写的dopost方法: /** * 处理微信服务器发来的消息 */ public void doPost(HttpServletRequest request, HttpServletResponse response) thr

微信公众平台开发问答

微信公众平台开发问答是一个微信知识问答区,专注于提供微信应用及开发技术知识的整理.归类和检索. 主题:新手常见问题 问:我是新手,没有开发基础,应该如何学习微信公众平台的开发?答:先学习PHP和Mysql,可以在网上找相应的教程,也可参考书籍<PHP和MySQL Web开发(原书第4版)>:再学习微信公众平台开发入门教程,了解微信收发消息原理及回复:然后根据微信开发文档,熟悉接口,并在此基础上实现一些基本的小功能,并扩展到更复杂的功能上. 问:URL和Token是什么意思?有什么用?我应该如何