微信公众号开发必须放弃的坑、必须明白的知识点

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;

  

posted on 2019-07-04 18:01  PER10  阅读(664)  评论(0编辑  收藏  举报

导航