微信企业号开发:启用回调模式

微信企业号开发怎样启用回调模式?就是简单的登陆PC版微信,点击应用中心,选择须要应用,再点击回调模式启用?

似乎不是这么简单。!



能够看到核心的仅仅有三个URL。Token,EncodingAESKey这三个參数能够随便填写吗?
1URL能够随便填写吗?
 
能够肯定的是。不能随便填写。

不信你能够试试。由于点击确定后微信会给这个URL发送信息。因此这个URL必须是外网能够訪问的地址。


并且后台还必须处理微信发送过来的信息。比如URL 是http://www.hao123.com/能够在外网方法。但点击保存时就会出现:
echostr校验失败。请您检查是否正确解密并输出明文echostr


2Token能够随便填写吗?
能够。眼下我没有发现有什么特殊的要求


3EncodingAESKey能随便填写吗?
不能随便填写,必须是数字字母的组合。并且是43个字符。建议使用微信随机生成的。


 


我们知道在URL处配置一个外网能够訪问的URL,并不能保证保存成功,后台怎样处理呢?
比如我配置为http://.../TestWeixin.ashx
则后台的处理方式。须要调用微信的相关加密解密函数
TestWeixin.ashx的后台代码为:

 public void ProcessRequest (HttpContext context) {if (context.Request.HttpMethod.ToLower() == "post"){            }else //点击保存时。微信须要验证时调用{Valid();}}private void Valid(){string msg_signature = HttpContext.Current.Request.QueryString["msg_signature"];string timestamp = HttpContext.Current.Request.QueryString["timestamp"];string nonce = HttpContext.Current.Request.QueryString["nonce"];string decryptEchoString = "";  // 解析之后的明文string echoStr = HttpContext.Current.Request.QueryString["echoStr"];bool isok = CheckSignature(msg_signature, timestamp, nonce, echoStr, ref decryptEchoString);if (isok){if (!string.IsNullOrEmpty(decryptEchoString)){HttpContext.Current.Response.Write(decryptEchoString);HttpContext.Current.Response.End();}}      }public bool CheckSignature(string signature, string timestamp, string nonce,string echostr, ref string retEchostr){string token = "token"; //配置的tokenstring corpId = "corpId"; //corpid,string encodingAESKey = "encodingAESKey"; //配置的tokenencodingAESKeyWXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAESKey, corpId); //调用微信提供的函数int result = wxcpt.VerifyURL(signature, timestamp, nonce, echostr, ref retEchostr);//调用微信提供的函数if (result != 0){LogInfo.Error("ERR: VerifyURL fail, ret: " + result);return false;}return true;//ret==0表示验证成功。retEchostr參数表示明文,用户须要将retEchostr作为get请求的返回參数,返回给企业号。        }



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVC中提交表单的4种方式

一,MVC HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){} BeginRouteForm 方法 (HtmlHelper, String, Object, FormMethod) 二,传统Form表单Aciton属性提交 三,JqueryAjax 提交表单 四,MVC C…

photoshop制作网站圆形图标ico

1、选择左侧工具栏中的椭圆工具2、鼠标直接在图片上选择区域3、在图片上鼠标右键建立选区,在弹出的对话框直接点确定变成这样:4、点击选择,然后点击反选变成这样5、图层栏,在图片上右键复制图层,弹出对话框直接确定即可…

WPF 窗体设置亚克力效果

WPF 窗体设置亚克力效果控件名:WindowAcrylicBlur作者: WPFDevelopersOrg - 吴锋原文链接: https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40。Visual Studio 2022。项目使用 MIT 开源许可协议。WindowAcrylicB…

数据分块加载——BigPipe 技术【类似facebook】

一、原理 分块加载,加载完一块,就先把页面数据刷给用户,再加载下面的,直到加载完毕二、基础需知:三、服务端和php的相应配置 如果想实现分块加载【bigpipe技术】,还需要对nginx.conf 和 php.ini 进行相应配…

右键一下,哇塞!

面向 Dev 频道的 Windows 预览体验成员微软推送了 Windows 11 预览版Insider Preview Build 25211主要变化1.微软改进了 Windows 11 小组件面板,小组件面板中的添加按钮更加醒目,点击用户头像将打开小组件设置。Windows 11 小组件由 Microsoft Edge 浏览…

前端学习 -- Css -- 内联元素的盒模型

内联元素不能设置width和height;设置水平内边距,内联元素可以设置水平方向的内边距:padding-left,padding-right;垂直方向内边距,内联元素可以设置垂直方向内边距,但是不会影响页面的布局;为元素…

Redis 数据持久化的方案的实现

一、需要了解的基础 1、Redis实现数据持久化的两种实现方式: RDB:指定的时间间隔内保存数据快照 AOF:先把命令追加到操作日志的尾部,保存所有的历史操作二、RDB 实现 Redis数据持久化(默认方式)1、编辑 red…

快速生成快递柜唯一取件码

曾管理一万多台快递柜,优化了系统中生成唯一取件码的算法。项目:https://github.com/nnhy/PickupCode新建项目,添加 Nuget 应用 NewLife.Redis ,借助其Add去重能力。代码如下:private static void Main(string[] args)…

自动调试自动编译五分钟上手

Browsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync可以同时在PC、平板、手机等设备下进项调试。 无论您是前端还是后端工程师,使用它将提高您30%的工作效率。 MD5加密&a…

六台机器搭建RedisCluster分布式集群

一、RedisCluster结构二、redis Cluster集群搭建1、修改redis.conf中需要更改的配置 bind 改成当前ip cluster-enabled yes #允许redis集群 cluster-config-file nodes-6379.conf #集群配置文件 cluster-node-timeout 15000 #集群中节点允许失联的最大时间15s 注&#xff1…

C# 的 async/await 其实是stackless coroutine

注: 最近Java 19引入的虚拟线程火热,还有很多人羡慕 go的 coroutine,很多同学一直有一个疑问: C# 有 虚拟线程或者 coroutine吗,下面的这个回答可以解决问题。这里节选的是知乎上的hez2010 的高赞回答:http…

中文词频统计

import jiebafoopen(text.txt,r,encodingutf-8)tfo.read()fo.close() wordsjieba.cut(t)dic{}for w in words: if len(w)1: continue else: dic[w]dic.get(w,0)1wc list(dic.items())wc.sort(keylambda x:x[1],reverse True)for i in range(20): print(wc[i]) 转载于:https:/…

[BZOJ1509][NOI2003]逃学的小孩

1509: [NOI2003]逃学的小孩 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 968 Solved: 489[Submit][Status][Discuss]Description Input 第一行是两个整数N(3  N  200000)和M,分别表示居住点总数和街道总数。以下M行,每行…

关闭 Visual Studio 2013 的 Browser Link 功能

什么是 Browser Link ? 这个 Browser Link 的功能就是通过一个脚本文件架起流程器和 Visual Studio IDE 之前的一个通信桥梁, 在启用 Browser Link 后, Visual Studio 会给网站注入一个 IHttpModule 模块对象, 然后在每个页面都会注册一段上…

Groove list操作-转数组,collect,each等

2019独角兽企业重金招聘Python工程师标准>>> list转换为数组 List list [a,b,c,d] def strs list as String[] println strs[0] 使用了Groovy语言,就能时不时的感受到Groovy语言在编码风格上与Java语言的不同。当然,我们首先感受到的可能就…

支持多种操作系统的新一代服务主机

一个应用需要常驻操作系统后台服务,可选框架有WindowsServiceLifeTime和SystemdLifeTime,但需要区别对待不同操作系统且需要另外写命令安装。NewLife.Agent自2008年设计以来,一直秉着简单易用的原则,不仅实现了服务框架&#xff0…

[翻译]Dapr 长程测试和混沌测试

介绍这是Dapr的特色项目,具体参见:https://github.com/dapr/test-infra/issues/11 ,在全天候运行的应用程序中保持Dapr可靠性至关重要。在部署真正的应用程序之前,可以通过在受控的混沌环境中构建,部署和操作此类应用程…

Mysql Lost connection to MySQL server at ‘reading initial communication packet', system error: 0

一、问题描述: 在服务器端可以正常连接并操作mysql,但是在windows端使用navicat工具远程ssh连接就出现下面错误。 1、服务器端: 2、windows端navicat连接 3、原因 原来我今天在做主从配置的时候,将 /etc/my.cnf 配置文件中的b…

自定义ProgressBar(圆)

2019独角兽企业重金招聘Python工程师标准>>> <lib.view.progressbar.ColorArcProgressBarandroid:layout_width"match_parent"android:layout_height"220dip"android:id"id/barInterest"android:layout_centerInParent"true&…

C# Task用法详解

概述Task是微软在.Net 4.0时代推出来的&#xff0c;Task看起来像一个Thread&#xff0c;实际上&#xff0c;它是在ThreadPool的基础上进行的封装&#xff0c;Task的控制和扩展性很强&#xff0c;在线程的延续、阻塞、取消、超时等方面远胜于Thread和ThreadPool&#xff0c;所以…