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 ?>
  • 相关阅读:
    FZU 2098 刻苦的小芳(卡特兰数,动态规划)
    卡特兰数总结
    FZU 1064 教授的测试(卡特兰数,递归)
    HDU 4745 Two Rabbits(区间DP,最长非连续回文子串)
    Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
  • 原文地址:https://www.cnblogs.com/ballwql/p/wechat.html
Copyright © 2011-2022 走看看