zoukankan      html  css  js  c++  java
  • 微信公众平台开发环境配置

    1.引言:最近两天玩了一把微信公众平台开发,在此把环境配置过程记录一下,期间遇到一些曲折,主要是BAE和SAE主机的问题,折腾了一天最后实在不行用自己实验室的主机作为服务器,唉,免费的东西就是不稳定,如果想要长期玩微信的话,最好买些好的空间。

    2.参考资料:

    A.微信消息接口指南:http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97

    B.方倍工作室的一些教程:http://www.cnblogs.com/txw1958/

    3.环境配置:

    3.1 如果想配置BAE和SAE作为主机,

      BAE配置可以参考:http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

      SAE配置可以参考:http://coolwb.com/2460.html

    3.2 自己主机的话,简单些:直接把文件放到主机服务器的网站根目录进行访问即可: http://www.example.com/weixin/

    4. 微信公众账号申请:

        公众账号有两个模式:编辑模式和开发模式。编辑模式下可以设置简单的消息自动回复和关键字自动回复,但功能太局限;由于我是想尝试开发模式的,所以开启开发者模式,在此之前,先把编辑模式关闭,再开启。

        开发者模式开启之后,即可配置接口参数。如下图所示:URL处填写你主机的地址,TOKEN填写要验证的Token值,可以自己设定,但必须同所需验证的index.php中的token一致。 token验证成功后会提示"提交成功", 并且显示您已成为开发者;如果验证不成功,则要检查是否是你程序写的有问题,还是你所填主机的地址无法成功访问问题,网上有一篇相关说明是关于Token验证不成功的情形下去跟踪微信IP地址的方法(链接地址:方倍工作室),以检查是哪类问题.

    (备注:我在配置过程中,虽然能验证成功,但用微信给公众账号发消息,就是无法按照设定返回给我的普通微信消息(不是公众账号),最后没办法换成自己实验室现有的一台主机作为服务器,域名用一个买过的域名作为URL

    5. 功能测试

        验证成功后,上述Index.php中的相关验证口令即没用了,可以将其内容替换成自己想要处理的内容。微信目前开通给开发者的接口有限,只能处理文本、声音和图文三类消息。根据官网消息接口说明制定相应的功能。

    6. 附录代码

    6.1 接口验证代码

     1 <?php
     2 define("TOKEN", "weixin"); //TOKEN值,此处填写你所设定的Token
     3 $wechatObj = new wechat();
     4 $wechatObj->valid();
     5 class wechat {
     6     public function valid() {
     7         $echoStr = $_GET["echostr"];
     8         if($this->checkSignature()){
     9             echo $echoStr;
    10             exit;
    11         }
    12     }
    13 
    14     private function checkSignature() {
    15         $signature = $_GET["signature"];
    16         $timestamp = $_GET["timestamp"];
    17         $nonce = $_GET["nonce"];
    18         $token = TOKEN;
    19         $tmpArr = array($token, $timestamp, $nonce);
    20         sort($tmpArr);
    21         $tmpStr = implode( $tmpArr );
    22         $tmpStr = sha1( $tmpStr );
    23         if( $tmpStr == $signature ) {
    24             return true;
    25         } else {
    26             return false;
    27         }
    28     }
    29 }
    30 ?>

    6.2 功能测试代码

     1 <?php
     2 $wechatObj = new wechat();
     3 $wechatObj->responseMsg();
     4 class wechat {
     5     public function responseMsg() {
     6 
     7         //---------- 接 收 数 据 ---------- //
     8 
     9         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取POST数据
    10 
    11         //用SimpleXML解析POST过来的XML数据
    12         $postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
    13 
    14         $fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID)
    15         $toUsername = $postObj->ToUserName; //获取接收方账号
    16         $keyword = trim($postObj->Content); //获取消息内容
    17         $time = time(); //获取当前时间戳
    18 
    19 
    20         //---------- 返 回 数 据 ---------- //
    21 
    22         //返回消息模板
    23         $textTpl = "<xml>
    24         <ToUserName><![CDATA[%s]]></ToUserName>
    25         <FromUserName><![CDATA[%s]]></FromUserName>
    26         <CreateTime>%s</CreateTime>
    27         <MsgType><![CDATA[%s]]></MsgType>
    28         <Content><![CDATA[%s]]></Content>
    29         <FuncFlag>0</FuncFlag>
    30         </xml>";
    31 
    32         $msgType = "text"; //消息类型
    33         $contentStr = 'welcome my account'; //返回消息内容
    34 
    35         //格式化消息模板
    36         $resultStr = sprintf($textTpl,$fromUsername,$toUsername,
    37         $time,$msgType,$contentStr);
    38         echo $resultStr; //输出结果
    39     }
    40 }
    41 ?>
  • 相关阅读:
    关于AysncController的一次测试(url重写后静态页文件内容的读取是否需要使用异步?)
    JQuery笔记
    ABP文档笔记
    ABP文档笔记
    ABP文档笔记
    设计模式、架构设计 博文收集
    async/await 的一些知识 (死锁问题)
    ABP文档笔记
    ABP文档笔记系列
    ABP文档笔记
  • 原文地址:https://www.cnblogs.com/ballwql/p/wechat.html
Copyright © 2011-2022 走看看