1)放弃开发文档中的python例子。因为文档中的案例代码,缩进严重,而且存在代码缺失,都会导致编译出问题。
推荐使用PHP,简单易上手,且不存在代码缩进错误就编译不成功的麻烦事。
快速搭建PHP环境(包括数据库MySQL、服务器Apache)的工具推荐:UPUPW。
2)https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5 中的 “1.4 开发者基本配置”部分,需要服务器配上一段PHP代码(开发者配置的URL能直接访问到的),来验证配置的URL没有错误。代码如下:
<?php define("TOKEN", "你自定义的TOKEN值"); //TOKEN值 $wechatObj = new wechat(); $wechatObj->valid(); class wechat { public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ) { return true; } else { return false; } } } ?>
注意:很多地方或者人曾经讲过“这段代码只会验证一次”,但是并没有讲清楚为何“只会验证一次”,也没有讲“以后可不可以删掉”。其实刚才已经说过了,就是理由:
这段代码是用来——验证配置的URL没有错误!因为公众号将会使用你设置的URL和Token来访问服务器上这个代码页面,访问得到就是成功了,说明URL有效,以后公众号就默认用这个URL。
也就是说, 开发者基本配置 那里验证URL成功之后,这段代码或者说保存这段代码的文件,就可以删掉了。反过来说,如果以后修改了URL,那么还是得重新建立这段代码来验证新的URL——依旧是那句话,验证成功就删掉。
3)文本消息被动回复的DEMO:参考 https://www.cnblogs.com/PER10/p/11134138.html
关键代码:
//获取POST数据 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //用SimpleXML解析POST过来的XML数据 $postObj = simplexml_load_string($postStr,‘SimpleXMLElement‘,LIBXML_NOCDATA); echo $resultStr;