php7.2微信明文加密,微信公众平台开发:消息加密
前不久,微信的企业号使用了强制的消息加密方式,随后公众号也加入了可选的消息加密选项。目前企业号和公众号的加密方式是一致的(格式会有少许差别)。
加密设置
进入公众号后台的“开发者中心”,我们可以看到Url对接的设置:
点击【修改设置】,可以进入到修改页面:
加密的方式一共有3种:
明文模式,即原始的消息格式
兼容模式,明文、密文将共存,正式发布的产品不建议使用(因为仍然包含了明文,达不到加密的效果)
安全模式,这种模式下消息将会被加密,开发者的服务器可以通过官方给出的算法进行解密,得到明文模式下的消息原文。
凡是加密的消息,返回的信息也需要经过加密。
处理加密信息
Senparc.Weixin.MP已经对三类消息作了自动判断,开发的过程中无需关注任何解密和加密的过程,仍然保持“明文模式”下的开发过程即可。
对应的MessageHandler中,我们可以通过一些参数得知目前的加密状态:
messageHandler.UsingEcryptMessage:是否使用了加密信息(包括兼容模式和安全模式)
messageHandler.UsingCompatibilityModelEcryptMessage:是否使用了兼容模式加密信息
通过上面2个属性的组合,我们便可以知道目前账号使用的是哪种加密模式(当然,大多数情况下开发者已经无需关心)。
为了可以更好地跟踪信息,MessageHandler新加入了FinalResponseDocument这个属性:
messageHandler.ResponseDocument:明文结构的响应数据XML对象
messageHandler.FinalResponseDocument:最终会返回给服务器的XML对象,在不加密的情况下将和ResponseDocument一致,否则会自动进行加密
加密原理
有关加密的算法(包括几种语言的示例下载)在官方的帮助文档里面可以找到:http://mp.weixin.qq.com/wiki/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88
这里要说明一下的是EncodingAESKey,官方的解释有点绕。实际上EncodingAESKey是对AESKey的一次Base64编码处理,而AESKey是一个长度为32的随机字符串(从a-z,A-Z,0-9中选取)。由于32个字符的Base64编码长度为固定的44(最后一个字符为=),所以去掉=之后,就生成了最终的43个字符长度的EncodingAESKey。EncodingAESKey在消息加密和解密的过程中都会用到,需要进行严格的保密。
下面是一段C#生成EncodingAESKey的代码:protected string CreateEncodingAESKey()
{
string aesKey = GetRadomStr(32);//获得a-z,A-Z,0-9的随机字符串
var encodingAesKey = Convert.ToBase64String(Encoding.UTF8.GetBytes(aesKey), Base64FormattingOptions.None);
return encodingAesKey.Substring(0, encodingAesKey.Length - 1);
}
更多微信公众平台开发:消息加密相关文章请关注PHP中文网!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php7.2微信明文加密,微信公众平台开发:消息加密相关推荐
- 微信公众 mysql回复图片_微信公众平台开发消息回复总结介绍
一.简介 微信公众平台提供了三种消息回复的格式,即文本回复.音乐回复和图文回复,在这一篇文章中,我们将对这三种消息回复的格式做一下简单讲解,然后封装成函数,以供读者使用. 二.思路分析 对于每一个PO ...
- 微信公众平台开发-消息管理-发送模板消息
一.模板说明 模板消息是在特定服务场景中向粉丝发送的消息,例如:信用卡刷卡通知,商品购买成功通知.不同的模板有不同的风格,某些字段可以由你来填充自己的内容(同时设定颜色),从而形成自己的消息.微信公众 ...
- 微信公众平台开发消息回复总结
http://www.cnblogs.com/mchina/p/3364377.html 转载地址 微信公众平台开发(十) 消息回复总结 一.简介 微信公众平台提供了三种消息回复的格式,即文 ...
- 微信公众平台回复多条消息php,PHP微信公众平台开发 - 消息回复的封装_PHP教程...
[PHP微信公众平台开发系列] 01.配置微信接口 02.公众平台示例代码分析 03.订阅事件(subscribe)处理 04.简单回复功能开发 05.天气预报功能开发 06.翻译功能开发 07.聊天 ...
- 微信公众平台开发-消息管理-发送客服消息
一.简介 当用户主动发消息给公众号的时候(包括发送信息.点击自定义菜单.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理
前言 回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 你也可以按自己所分析的情形结构来建表 必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较多 思维导 ...
- 天气预报文字版微信_微信公众平台开发(4)天气预报
微信公众平台 微信公众平台开发 消息接口 微信天气预报 天气预报接口 中国天气网 一.数据接口 百度提供天气预报查询接口API,可以根据经纬度/城市名查询天气情况,我们可以在微信公众平台开发中调用这一 ...
- PHP7.0微信公众平台开发4: 实例一:接收普通消息和接收事件推送
PHP7.0微信公众平台开发4: 实例一:接收普通消息和接收事件推送 1. API接口的声明 2. PHP脚本代码 3. 运行结果 由于消息类型有多钟,本文中,"接收普通消息"我以 ...
- 《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——3.3 微信开发者中心...
本节书摘来自华章计算机<微信公众平台开发:从零基础到ThinkPHP5高性能框架实践>一书中的第3章,第3.3节,作者 方倍工作室,更多章节内容可以访问云栖社区"华章计算机&qu ...
最新文章
- LeetCode实战:最长公共前缀
- Spring Security 中使用Keycloak作为认证授权服务器
- C#Array(数组) 一维、多维数组
- 8.5-7 mkfs、dumpe2fs、resize2fs
- ppt修复无法读取_移动硬盘故障分析以及建议修复方法
- [react] 你阅读了几遍React的源码?都有哪些收获?你是怎么阅读的?
- php flush nginx,Nginx+phpfastcgi下flush输出问题
- 捕获Wscript.Quit的退出码
- (4)css2.1选择器
- wps怎么画网络图_尼玛,WPS竟然悄悄搞了个免费的公文写作AI...【石说】
- Java EE重命名为Jakarta EE:Java EE Guardians与Oracle的分歧
- python语言高空坠球_高空坠物打击体验装置制造方法
- android 扫描ble设备,Android设备扫描后列出BLE设备
- cad(2000坐标系)转kml
- java 树结构_Java通用tree树形结构
- 最新的CC2642R与CC2640、CC2640R2F有什么改进?
- 如何将VSCode添加到鼠标右键菜单
- 【转载收藏】针对VNPY的软件bugs的修改总结
- 应用宝省流量更新sdk接入指南
- 单片机读写FT24C256A详解