微信encodingaeskey生成怎么获取

关键字:微信公众平台 消息体签名 消息体加解密 EncodingAESKey 安全模式
一、消息体加解密
微信公众平台在配置服务器时,提供了3种加解密的模式供开发者选择,即明文模式、兼容模式、安全模式,选择兼容模式和安全模式前,需在开发者中心填写消息加解密密钥EncodingAESKey。
明文模式:维持现有模式,没有适配加解密新特性,消息体明文收发,默认设置为明文模式
兼容模式:公众平台发送消息内容将同时包括明文和密文,消息包长度增加到原来的3倍左右;公众号回复明文或密文均可,不影响现有消息收发;开发者可在此模式下进行调试
安全模式(推荐):公众平台发送消息体的内容只含有密文,公众账号回复的消息体也为密文,建议开发者在调试成功后使用此模式收发消息
什么是EncodingAESKey?
微信公众平台采用AES对称加密算法对推送给公众帐号的消息体对行加密,EncodingAESKey则是加密所用的秘钥。公众帐号用此秘钥对收到的密文消息体进行解密,回复消息体也用此秘钥加密。AES对称加密算法的原理可以参考 /txw1958/p/aes.html
  加解密的详细技术方案可以参考官方文档 http://mp./wiki/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88
二、开发实现及数据分析
假设本次的开发配置中URL为
http://www.fangbei.org/index.php
接口程序中需要配置以下三项参数
方倍工作室 /txw1958/
CopyRight 2014 All Rights Reserved
define("TOKEN", "weixin");
define("AppID", "wxbad0b4e");
define("EncodingAESKey", "abcdefghijklmnopqrstuvwxyzABCDEFG");
require_once('wxBizMsgCrypt.php');
2. 加解密实现
当用户向公众账号发送消息时,微信公众账号将会在URL中带上signature、timestamp、nonce、encrypt_type、msg_signature等参数,如下所示
http://www.fangbei.org/index.php?signature=f9df2a77a662b68e521ce17c34db4&timestamp=&nonce=&encrypt_type=aes&msg_signature=daf7a1a9eed6e0ec3ba
同时向该接口推送如下XML消息 ,即一个已加密的消息
&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&Encrypt&&![CDATA[MNn4+jJ/VsFh2gUyKAaOJArwEVYCvVmyN0iXzNarP3O6vXzK62ft1/KG2/XPZ4y5bPWU/jfIfQxODRQ7sLkUsrDRqsWimuhIT8Eq+w4E/28m+XDAQKEOjWTQIOp1p6kNsIV1DdC3B+AtcKcKSNAeJDr7x7GHLx5DZYK09qQsYDOjP6R5NqebFjKt/NpEl/GU3gWFwG8LCtRNuIYdK5axbFSfmXbh5CZ6Bk5wSwj5fu5aS90cMAgUhGsxrxZTY562QR6c+3ydXxb+GHI5w+qA+eqJjrQqR7u5hS+1x5sEsA7vS+bZ5LYAR3+PZ243avQkGllQ+rg7a6TeSGDxxhvLw+mxxinyk88BNHkJnyK//hM1k9PuvuLAASdaud4vzRQlAmnYOslZl8CN7gjCjV41skUTZv3wwGPxvEqtm/nf5fQ=]]&&/Encrypt&
这时,程序需要从url中获得以下参数
$timestamp
= $_GET['timestamp'];
$nonce = $_GET["nonce"];
$msg_signature
= $_GET['msg_signature'];
$encrypt_type = $_GET['encrypt_type'];
这些参数将用于加解密过程
收到消息后,先进行解密,解密部分代码如下
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if ($encrypt_type == 'aes'){
$pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID);
$this-&logger(" D \r\n".$postStr);
$decryptMsg = "";
//解密后的明文
$errCode = $pc-&DecryptMsg($msg_signature, $timestamp, $nonce, $postStr, $decryptMsg);
$postStr = $decryptMsg;
解密完成后,把解密内容又返回给$postStr,这是为了保证将消息中解密后的内容和明文模式时的消息统一,方便后续处理,解密后的XML如下
&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&FromUserName&&![CDATA[oIDrpjpQ8j8mBuQ8nM26HWzNEZgg]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[?]]&&/Content&
&MsgId&8426998&/MsgId&
对消息在自己的原来代码中处理,完成之后,要回复的消息如下
&ToUserName&&![CDATA[oIDrpjpQ8j8mBuQ8nM26HWzNEZgg]]&&/ToUserName&
&FromUserName&&![CDATA[gh_680bdefc8c5d]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[ 21:28:53
技术支持 方倍工作室
http://www.fangbei.org/]]&&/Content&
把上述消息进行加密,返回给微信公众账号
if ($encrypt_type == 'aes'){
$encryptMsg = ''; //加密后的密文
$errCode = $pc-&encryptMsg($result, $timeStamp, $nonce, $encryptMsg);
$result = $encryptMsg;
$this-&logger(" E \r\n".$result);
加密后的内容如下
&Encrypt&&![CDATA[pE6gp6qvVBMHwCXwnM7illFBrh9LmvlKFlPUDuyQo9EKNunqbUFMd2KjiYoz+3K1B+93JbMWHt+19TI8awdRdyopRS4oUNg5M2jwpwXTmc6TtafkKNjvqlvPXIWmutw0tuMXke1hDgsqz0SC8h/QjNLxECuwnczrfCMJlt+APHnX2yMMaq/aYUNcndOH387loQvl2suCGucXpglnbxf7frTCz9NQVgKiYrvKOhk6KFiVMnzuxy6WWmoe3GBiUCPTtYf5b1CxzN2IHViEBm28ilV9wWdNOM9TPG7BSSAcpgY4pcwdIG5+4KhgYmnVU3bc/ZJkk42TIdidigOfFpJwET4UWVrLB/ldUud4aPexp3aPCR3Fe53S2HHcl3tTxh4iRvDftUKP3svYPctt1MlYuYv/BZ4JyzUQV03H+0XrVyDY2tyVjimgCrA2c1mZMgHttOHTQ6VTnxrMq0GWlRlH0KPQKqtjUpNQzuOH4upQ8boPsEtuY3wDA2RaXQPJrXon]]&&/Encrypt&
&MsgSignature&&![CDATA[6c4b2ddf2ddcf41f33ecb9]]&&/MsgSignature&
&TimeStamp&&/TimeStamp&
&Nonce&&![CDATA[]]&&/Nonce&
这样,一个安全模式下的加解密消息就完成了。
三、完整代码
方倍工作室 /txw1958/
CopyRight 2014 All Rights Reserved
6 define("TOKEN", "weixin");
7 define("AppID", "wxbad0b4e");
8 define("EncodingAESKey", "abcdefghijklmnopqrstuvwxyzABCDEFG");
9 require_once('wxBizMsgCrypt.php');
11 $wechatObj = new wechatCallbackapiTest();
12 if (!isset($_GET['echostr'])) {
$wechatObj-&responseMsg();
$wechatObj-&valid();
18 class wechatCallbackapiTest
//验证签名
public function valid()
$echoStr = $_GET["echostr"];
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$tmpArr = array(TOKEN, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if($tmpStr == $signature){
echo $echoStr;
//响应消息
public function responseMsg()
$timestamp
= $_GET['timestamp'];
$nonce = $_GET["nonce"];
$msg_signature
= $_GET['msg_signature'];
$encrypt_type = (isset($_GET['encrypt_type']) && ($_GET['encrypt_type'] == 'aes')) ? "aes" : "raw";
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){
if ($encrypt_type == 'aes'){
$pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID);
$this-&logger(" D \r\n".$postStr);
$decryptMsg = "";
//解密后的明文
$errCode = $pc-&DecryptMsg($msg_signature, $timestamp, $nonce, $postStr, $decryptMsg);
$postStr = $decryptMsg;
$this-&logger(" R \r\n".$postStr);
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$RX_TYPE = trim($postObj-&MsgType);
//消息类型分离
switch ($RX_TYPE)
case "event":
$result = $this-&receiveEvent($postObj);
case "text":
$result = $this-&receiveText($postObj);
$this-&logger(" R \r\n".$result);
if ($encrypt_type == 'aes'){
$encryptMsg = ''; //加密后的密文
$errCode = $pc-&encryptMsg($result, $timeStamp, $nonce, $encryptMsg);
$result = $encryptMsg;
$this-&logger(" E \r\n".$result);
echo $result;
//接收事件消息
private function receiveEvent($object)
$content = "";
switch ($object-&Event)
case "subscribe":
$content = "欢迎关注方倍工作室 ";
$result = $this-&transmitText($object, $content);
return $result;
//接收文本消息
private function receiveText($object)
$keyword = trim($object-&Content);
if (strstr($keyword, "文本")){
$content = "这是个文本消息";
}else if (strstr($keyword, "单图文")){
$content = array();
$content[] = array("Title"=&"单图文标题",
"Description"=&"单图文内容", "PicUrl"=&"li.com/weixin/weather/icon/cartoon.jpg", "Url" =&"/?u=txw1958");
}else if (strstr($keyword, "图文") || strstr($keyword, "多图文")){
$content = array();
$content[] = array("Title"=&"多图文1标题", "Description"=&"", "PicUrl"=&"li.com/weixin/weather/icon/cartoon.jpg", "Url" =&"/?u=txw1958");
$content[] = array("Title"=&"多图文2标题", "Description"=&"", "PicUrl"=&"http://d./wisegame/pic/item/fe0cf3ac9f1ada0846f21fbe09aaa3.jpg", "Url" =&"/?u=txw1958");
$content[] = array("Title"=&"多图文3标题", "Description"=&"", "PicUrl"=&"http://g./wisegame/pic/item/18cb0a46f21fbe090d338acc6a600c338644adfd.jpg", "Url" =&"/?u=txw1958");
}else if (strstr($keyword, "音乐")){
$content = array();
$content = array("Title"=&"最炫民族风", "Description"=&"歌手:凤凰传奇", "MusicUrl"=&"http://121.199.4.61/music/zxmzf.mp3", "HQMusicUrl"=&"http://121.199.4.61/music/zxmzf.mp3");
$content = date("Y-m-d H:i:s",time())."\n".$object-&FromUserName."\n技术支持 方倍工作室";
if(is_array($content)){
if (isset($content[0])){
$result = $this-&transmitNews($object, $content);
}else if (isset($content['MusicUrl'])){
$result = $this-&transmitMusic($object, $content);
$result = $this-&transmitText($object, $content);
return $result;
//回复文本消息
private function transmitText($object, $content)
$xmlTpl = "&xml&
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%s&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[%s]]&&/Content&
141 &/xml&";
$result = sprintf($xmlTpl, $object-&FromUserName, $object-&ToUserName, time(), $content);
return $result;
//回复图文消息
private function transmitNews($object, $newsArray)
if(!is_array($newsArray)){
$itemTpl = "
&Title&&![CDATA[%s]]&&/Title&
&Description&&![CDATA[%s]]&&/Description&
&PicUrl&&![CDATA[%s]]&&/PicUrl&
&Url&&![CDATA[%s]]&&/Url&
$item_str = "";
foreach ($newsArray as $item){
$item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);
$xmlTpl = "&xml&
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%s&/CreateTime&
&MsgType&&![CDATA[news]]&&/MsgType&
&ArticleCount&%s&/ArticleCount&
&Articles&
170 $item_str
&/Articles&
171 &/xml&";
$result = sprintf($xmlTpl, $object-&FromUserName, $object-&ToUserName, time(), count($newsArray));
return $result;
//回复音乐消息
private function transmitMusic($object, $musicArray)
$itemTpl = "&Music&
&Title&&![CDATA[%s]]&&/Title&
&Description&&![CDATA[%s]]&&/Description&
&MusicUrl&&![CDATA[%s]]&&/MusicUrl&
&HQMusicUrl&&![CDATA[%s]]&&/HQMusicUrl&
&/Music&";
$item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']);
$xmlTpl = "&xml&
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%s&/CreateTime&
&MsgType&&![CDATA[music]]&&/MsgType&
195 &/xml&";
$result = sprintf($xmlTpl, $object-&FromUserName, $object-&ToUserName, time());
return $result;
//日志记录
public function logger($log_content)
if(isset($_SERVER['HTTP_APPNAME'])){
sae_set_display_errors(false);
sae_debug($log_content);
sae_set_display_errors(true);
}else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL
$max_size = 500000;
$log_filename = "log.xml";
if(file_exists($log_filename) and (abs(filesize($log_filename)) & $max_size)){unlink($log_filename);}
file_put_contents($log_filename, date('Y-m-d H:i:s').$log_content."\r\n", FILE_APPEND);
阅读(...) 评论()在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
“/”应用程序中的服务器错误。
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Exception: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
[Exception: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)]
DTcms.DBUtility.DbHelperSQL.Query(String SQLString) +166
DTcms.DAL.channel_category.GetList(Int32 Top, String strWhere, String filedOrder) +259
DTcms.BLL.channel_category.GetDefaultPath() +33
DTcms.Web.UI.SiteDomains..ctor() +72
DTcms.Web.UI.SiteDomains.GetSiteDomains() +82
DTcms.Web.UI.HttpModule.ReUrl_BeginRequest(Object sender, EventArgs e) +1137
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
版本信息:&Microsoft .NET Framework 版本:2.0.; ASP.NET 版本:2.0.最新版微信接入EncodingAESKey怎么用_百度知道
最新版微信接入EncodingAESKey怎么用
提问者采纳
这个就是 准备发布的howork企业号系统,它会有你这个问题的解决方案 祝你愉快,满意请采纳哦
资深电脑人
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁微信EncodingAESKey的加密解密
官方只给了PHP等语言的例子
那ASP的咋写?
最新评论最近读者标签
博客统计文章:369篇页面:3个分类:9个标签:658个评论:458条用户:5133人浏览:840303次运行:1012天微信encodingaeskey
文章作者:松阳 本文出自 阿修罗道,禁止用于商业用途,转载请注明出处.
原文链接:http://blog.csdn.net/fansongy/article/details/ 消息体加密随着微信服务开发在越来越多的领域应用,应用的安全性逐渐被重视起来.本文主要阐述如何为微信的消息加密的原理与Java版本的实现.原理做过微信开发的朋友们都知道,微信使用xm ...
开发微信企业号经常会遇到几个很常见的参数,这几个参数是什么含义?在什么地方呢?有什么作用?EncodingAESKey,Token,ACCESS_TOKEN,corpid,corpsecret,agentid,userid,部门ID?都表示什么含义呢?1EncodingAESKey是加密解密使用的,加密解密时要用三个参数EncodingAESKey,Token,CorpID ...
写在前面的话:为了更灵活的与微信公众平台互动,需要将微信公众平台与自己的服务器进行对接,只有对接成功之后,才能够进行后面功能的实现. =========正文开始========== 详细讲解之前,对微信公众平台与自己服务器对接先有个感性的认识. 假设微信已经与我们自己的服务器完成对接,之后微信公众平台就能够将自己接收到的消息发送给我们的服务器,同样我们也可以给微信服务器发送 ...
不得不吐槽一下腾讯提供的官网开发文档,真他妈跟屎一样.
我的智商都需要反复看几遍,还不懂. http:/blog/static// 这文章写的还好.总算明白了.
另外一个开源的sdk封装不错: /dodgepudding/wechat- ...
关键字:微信公众平台开发作者:方倍工作室
在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用 启用微信公众平台开发模式 了解数据收发原理及消息格式 开发实现微信天 ...
首先我们要明确开发模式什么可以做,什么不可以做:
一.开发模式可以实现的功能
1.可以接收用户发送过来的消息,通过你自己开发的系统把对应内容反馈回去.
2.可以接收用户发送过来的地理位置,通过地理位置你可以反馈附近餐厅信息或交通信息(例如高德地图)
3.通过事件推送,可以识别用户对公众帐号订阅和取消订阅操作的情况.
4.开发模式的接口除了可以反馈图文 ...
在上篇随笔&C#开发微信门户及应用(19)-微信企业号的消息发送(文本.图片.文件.语音.视频.图文消息等)&介绍了有关企业号的消息发送,官方特别声明消息是不用加密发送的.但是在回调的服务器上,也就是我们网站的服务器上,微信传过来的消息是加密的,需要我们调用类库对消息和事件进行解密操作,由于官方的例子不全,因此摸索了不少时间,最终顺利解密收到的各种消息和事件.本 ...
在本系列随笔的前面,主要就是介绍微信公众号的门户应用开发,最近把整个微信框架进行了扩展补充,增加了最新的企业号的API封装和开发,后续主要介绍如何利用C#进行微信企业号的开发工作,本篇作为微信企业号的开发的起步篇,介绍微信企业号的配置和使用. 1.微信企业号的注册和登陆 企业号是继公众号.订阅号的另外一种微信类型,它主要是面对企业的.企业号是微信为企业客户提供的移动应用入 ...
接收普通消息 普通消息是指员工向企业号应用发送的消息,包括文本.图片.语音.视频.地理位置等类型.普通消息会推送到每个应用在管理端设置的URL(以下假设该URL为). 请求说明 Http请求方式: POST /?msg_signature=ASDFQWEXZCVAQFASDFASDFSS&amp ...
一.填写服务器配置
登录微信公众平台,点击开发者中心,点击“修改配置”按钮,填写服务器地址(URL).Token和EncodingAESKey.URL是开发者用来接收微信消息和事件的接口URL.Token可以任意填写,用作生成签名.EncodingAESKey可以手动填写或随机生成.
二.验证服务器的有效性
以下内容来自开发者文档
/zskbll/p/4139039.html
C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南)
距离上一篇博文已经半个月了,本来打算每两天更新一次的,但可怜苦逼码农无日无夜的加班.第一篇博文发表后,博文视点的编辑就 ...
/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手 ...
最近研究了下服务号的服务器配置和企业号的回调模式.真正实现完后,觉得很简单,但一开始还是走了点弯路,所以写了个web程序,只用改下配置文件里的参数就可以直接用了.下面介绍下详细的用法以及实现步骤.
本文原文地址:用c#开发微信(1)服务号的服务器配置和企业号的回调模式 - url接入 (源码下载) 一.用法 1. 下载web程序 /cjeT ...
前言 微信消息体签名及加密功能已上线,明文传输确实存在安全风险,鉴于微信的用户范围使用之广泛,必定会成为众矢之的.所以大家还是尽快接入安全模式为好.仔细阅读官方接入指南,发现这次安全升级只是涉及到用户在微信对话窗口中与公众好消息交互,所以此次升级还是比较简单的.下面为大家一一道来.
一.功能解析 微信消息体签名及加密功能已上线,出于安全考虑,强烈建议您尽快接入消息加密功 ...
微信发展如火如荼,没有哪家的企业营销能避开微信不谈的,那像我们这种给客户实施项目的多多少少会涉及微信端的开发,本文只要给从未做过微信开发的人做一些简单的演示,行家里手们可以一下该干嘛干嘛去了.
微信的开发网上的很多教程都是php的,如果会php的朋友可以参考这个教程:/txw1958/p/wechat-tutorial. ...
http://qydev./qa/index.php?qa=3197&qa_1=%E6%88%91%E6%98%AF%E4%BC%81%E4%B8%9A%E5%8F%B7%E4%BD%93%E9%AA%8C%E8%B4%A6%E6%88%B7-%E6%88%91%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%EF% ...
最近在学习如何做微信营销,发现了一款非常好用的工具:水滴微信平台 它可以通过添加插件方式在微信里面组织很多活动,比如抽奖.送积分.用户和平台互动的管理等,非常方便,但最近为了给自己新的订阅号注册账号时候发现了一个bug.现在来大致描述一下:1.在此账号注册以后需要在微信公众平台的开发者中心-&设置URL(服务器地址),Token(令牌),自动生成EncodingAES ...
接收到的消息和事件,其实都是微信post到我们配置的URL的消息.接收普通消息就是用户给公众号发送的消息,事件是由于用户的特定操作,微信post给我们的消息.被动响应消息是我们收到微信post过来的普通消息或者是事件时,企业号通过Response.Write这种方式的消息.核心代码:把微信post过来的数据先解密,转为能处理的XML,再把XML转为对象 #region 将P ...
微信企业号开发如何启用回调模式?就是简单的登陆PC版微信,点击应用中心,选择需要应用,再点击回调模式启用?似乎不是这么简单!!可以看到核心的只有三个URL,Token,EncodingAESKey这三个参数可以随便填写吗?1URL可以随便填写吗? 可以肯定的是,不能随便填写.不信你可以试试.因为点击确定后微信会给这个URL发送信息.因此这个URL必须是外网可以访问的地址.而 ...
引言: 最近因为业务的需要,老板布置做了两个月简单的的微信公众平台开发,从网上搜了一些资料,实话说资料不多. 在参考学习的过程中也遇到了不少难缠的小问题,虽然不难逾越,但是确实浪费了时间. 我发现网上仅有不多的几个教程几乎全是是错漏百出,当然也都比较过时,基本上是两三年前写的. 甚至有些文章感觉作者有点故意的,含混不清,并没有把关键步骤和代码放出来,导致如果跟着学,压根就不 ...

我要回帖

更多关于 encodingaeskey怎么用 的文章

 

随机推荐