微信公众平台接入指南_app.httpcontext.request 微信公众号_软件开发研究的博客-程序员宅基地

技术标签: C#  微信公众平台  公众号 微信  .net  

对于微信公众平台接入指南的接口文档,请参考:http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html

其实接入微信公众平台开发,开发者需要按照如下步骤完成:


1、填写服务器配置
2、验证服务器地址的有效性
3、依据接口文档实现业务逻辑

最终能在下图中测试通过就可以了


现在我们主要是编写代码:
接入验证
        public void ProcessRequest(HttpContext context)
        {
            string postString = string.Empty;

            Auth(); //微信接入的验证

            if (HttpContext.Current.Request.HttpMethod.ToLower() == "post")
            {
                Stream s = System.Web.HttpContext.Current.Request.InputStream;
                byte[] b = new byte[s.Length];
                s.Read(b, 0, (int)s.Length);

                postString = Encoding.UTF8.GetString(b);

                if (!string.IsNullOrEmpty(postString))
                {
                    Execute(postString);
                }
            }

        }

其中Auth,可以按照接口文档中的第二步来编写。具体可以看接口文档。
加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

下图,是在测试号配置通过的


 验证URL有效性成功后即接入生效,成为开发者。此后用户每次向公众号发送消息、或者产生自定义菜单点击事件时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,然后开发者可以依据自身业务逻辑进行响应,例如回复消息等。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/WXbluethink/article/details/52443819

智能推荐

自定义注解+HandlerInterceptor拦截 实现 防止表单重复提交_handlerinterceptor 会拦截自定义异常-程序员宅基地

开发环境 SpringBoot1.自定义 @NoRepeatForm 注解package com.example.demo.config.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.Retenti..._handlerinterceptor 会拦截自定义异常

idea全局搜索快捷鍵ctrl+shift+F失效-程序员宅基地

idea全局搜索快捷鍵ctrl+shift+F失效1.确认是否修改了默认的快捷键配置:file-settings-keymap,在右边的放大镜中搜索find in Path确认快捷键设置的是:ctrl+shift+F2.快捷键冲突(常见的就是和输入法快捷键冲突)以我的win10自带输入法为例:2.1.右下角导航右键输入法打开设置功能:2.2. 在快捷键中取消输入法预定的快捷键即可:...

Vue使用scss-程序员宅基地

由于css文件是使用scss相关语法写的,所以工程需要能够支持scss。安装依赖npm install sass-loader node-sass --save-dev安装成功后修改vue文件内的代码如下添加lang="scss"<style scoped lang="scss">$primary-color: #ff6b6b;$primary-color-ho..._vue使用scss

【蜕变之路】第22天 随机20位数字字符串 (2019年3月12日)-程序员宅基地

Hello,大家好!我是程序员阿飞!今天去医院做了入职体检,下午才去公司上班。今天主要学习的内容是:随机生成一个20位的数字字符串 == 系统时间+3位随机数。好了,直接进入正题。代码示例:import java.text.SimpleDateFormat;import java.util.Date;...

houdini记录之视图操作_houdini最大化显示-程序员宅基地

在视图模型下,字幕B会将单视图转换为4视图,鼠标悬停在某一视图,按下B,会将当前视图最大化。四视图:顶视图、透视图、前视图、侧视图。_houdini最大化显示

error: luaxlib.h: No such file or directory_lauxlib.h: 没有那个文件或目录-程序员宅基地

在linux下,学习c和lua脚本相互调用时,参考网上的例子,发现始终编译不过去。 一直在报错误 error: luaxlib.h: No such file or directory很郁闷,网上搜也搜不到,最后才发现是拼写错误,这也太坑了吧。 1 #include "lua.h" 2 #include "luaxlib.h" //应该是lauxlib.h 3 #in_lauxlib.h: 没有那个文件或目录

随便推点

常用的DML语句_4种常见的dml语句-程序员宅基地

一、select语句简单SQL查询语句是:select [ all | distinct ] 或者 select column_list1 as “a” ,select column_list2as “b” from { table_name|view_name } //表的连接,有三种连接方式,FROM tab_nam..._4种常见的dml语句

Wxml中遍历对象_wxml遍历对象-程序员宅基地

//wxml<view wx:for="{{obj}}" wx:for-index="key" wx:for-item="value">{{key}} : {{value}}</view>//jsdata:{ obj: {...} }_wxml遍历对象

mac vscode 运行html,【macOS】在终端打开 vscode_平象法师的博客-程序员宅基地

打开vscodeopen -a 'Visual Studio Code.app' [要用vscode打开的文件夹或文件名称]相关命令open -h输出结果Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-s ][-b ] [-a ] [filenames] [--args arguments]Help: Open opens files f...

ERWin 7 下载地址和注册码_erwin7301注册机-程序员宅基地

ERWin 7.1 下载地址:ftp://ftp.ca.com/CAproducts/erwin/ServicePacks/AFEDM71sp2-b1303.exeERWin 7.2 下载地址:ftp://ftp.ca.com/CAproducts/erwin/ServicePacks/AFEDM72-b1644.exeftp://ftp.ca.com 是CA的官方FTP,如果你需_erwin7301注册机

电驴emule使用教程_emule url-程序员宅基地

先保证服务器连接。在电骡服务器界面右边的“从URL更新server.met”字样下边的小框里输入“http://upd.emule-security.org/server.met”,然后点击“更新”,下载新的服务器列表即可。Kad连接http://upd.emule-security.org/nodes.dathttp://kademlia.ru/download/nodes.dath..._emule url

[Unity2d系列教程] 005.Unity如何使用外部触控插件FingerGuesture-程序员宅基地

用过Unity的都知道自带的Input.touches并不支持鼠标输入,给我们的调试带来很大的不方便。那么我们会发现其实有很多触控方面的插件,如inputtouches,easy touch,fingerGesture等。下面我主要讲解FingerGesture的使用,这个插件不是免费的,可以自行购买1.导入插件导入后的插件会在Assets/Plugins下面2.拖动...