zoukankan      html  css  js  c++  java
  • 微信练手-环境准备(1)

    微信一大好处就是不用下载app,就能直接通过公众号关注你,从而拉进拉紧你关心的人,包括客户。

    微信实际上就是一电话总机中转站,仅仅做一点p事。所以别看的多神奇。

    第一步:申请公众号(网上一大把);

    要说的是,前期测试而言,不要三百元大洋审核。用开发者菜单中的测试平台。所有的审核收费功能在这里都提供。

    第二部:配置服务器:开发者中心有配置项。

    这里的wxapi.php怎么写:官方已经提供了一个demo,define("TOKEN", "weixin");。这里要和配置中的Token保持一致。然后修改该demo文件名,再然后上传到你的五花八门的域名网站上即可。

     1 <?php
     2 /**
     3   * wechat php test
     4   */
     5 
     6 //define your token
     7 define("TOKEN", "weixin");
     8 $wechatObj = new wechatCallbackapiTest();
     9 $wechatObj->valid();
    10 
    11 class wechatCallbackapiTest
    12 {
    13     public function valid()
    14     {
    15         $echoStr = $_GET["echostr"];
    16 
    17         //valid signature , option
    18         if($this->checkSignature()){
    19             echo $echoStr;
    20             exit;
    21         }
    22     }
    23 
    24     public function responseMsg()
    25     {
    26         //get post data, May be due to the different environments
    27         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    28 
    29           //extract post data
    30         if (!empty($postStr)){
    31                 
    32                   $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    33                 $fromUsername = $postObj->FromUserName;
    34                 $toUsername = $postObj->ToUserName;
    35                 $keyword = trim($postObj->Content);
    36                 $time = time();
    37                 $textTpl = "<xml>
    38                             <ToUserName><![CDATA[%s]]></ToUserName>
    39                             <FromUserName><![CDATA[%s]]></FromUserName>
    40                             <CreateTime>%s</CreateTime>
    41                             <MsgType><![CDATA[%s]]></MsgType>
    42                             <Content><![CDATA[%s]]></Content>
    43                             <FuncFlag>0</FuncFlag>
    44                             </xml>";             
    45                 if(!empty( $keyword ))
    46                 {
    47                       $msgType = "text";
    48                     $contentStr = "Welcome to wechat world!";
    49                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    50                     echo $resultStr;
    51                 }else{
    52                     echo "Input something...";
    53                 }
    54 
    55         }else {
    56             echo "";
    57             exit;
    58         }
    59     }
    60         
    61     private function checkSignature()
    62     {
    63         $signature = $_GET["signature"];
    64         $timestamp = $_GET["timestamp"];
    65         $nonce = $_GET["nonce"];    
    66                 
    67         $token = TOKEN;
    68         $tmpArr = array($token, $timestamp, $nonce);
    69         sort($tmpArr);
    70         $tmpStr = implode( $tmpArr );
    71         $tmpStr = sha1( $tmpStr );
    72         
    73         if( $tmpStr == $signature ){
    74             return true;
    75         }else{
    76             return false;
    77         }
    78     }
    79 }
    80 
    81 ?>
    View Code

    第三:提交保存:确认前面几部没有错误,多保存几次。因为没你想象的反应那么快。最后一定是成功。

  • 相关阅读:
    六、Prototype 原型(创建型模式)
    七、Adapter 适配器(结构型模式)
    java weblogic 数据源 配置
    ExtJs便签
    js初步学习
    解决weblogic的oracle驱动问题
    ExtJs函数
    从一个空表中获取N条数据
    诡异的编码和字节长度
    SQL SERVER 中的日期时间
  • 原文地址:https://www.cnblogs.com/usegear/p/4546495.html
Copyright © 2011-2022 走看看