zoukankan      html  css  js  c++  java
  • PHP微信公众号开发之基本配置

    (提示:需要有服务器或云虚拟机)

     一开始不明白公众号不是可以这样管理吗?

                  

    那么为什么用开发平台进行公众号开发,官方文档是这样说的

    为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,
    如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平
    台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用
    户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同
    一开放平台账号下的公众号和应用,只有一个UnionID,可以在用户管
    理-获取用户基本信息(UnionID机制)文档了解详情。

     下面开始基本配置吧

    下面这些都要设置的

         

    (以上信息建议复制一份到文本文档中)

     当然要上传相应文件到服务器上

    代码如下:

      1 define("TOKEN", "hello");//令牌改成自己的
      2 
      3 $wechatObj = new wechatCallbackapiTest();
      4 
      5 $wechatObj->valid();
      6 
      7 
      8 
      9 class wechatCallbackapiTest
     10 
     11 {
     12 
     13 
     14     public function valid()
     15 
     16     {
     17 
     18         $echoStr = $_GET["echostr"];
     19 
     20 
     21 
     22         //valid signature , option
     23 
     24         if($this->checkSignature()){
     25 
     26             echo $echoStr;
     27 
     28             exit;
     29 
     30         }
     31 
     32     }
     33 
     34 
     35 
     36     public function responseMsg()
     37 
     38     {
     39 
     40         //get post data, May be due to the different environments
     41 
     42         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
     43 
     44 
     45 
     46           //extract post data
     47 
     48         if (!empty($postStr)){
     49 
     50                 
     51 
     52                   $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
     53 
     54                 $fromUsername = $postObj->FromUserName;
     55 
     56                 $toUsername = $postObj->ToUserName;
     57 
     58                 $keyword = trim($postObj->Content);
     59 
     60                 $time = time();
     61 
     62                 $textTpl = "<xml>
     63 
     64                             <ToUserName><![CDATA[%s]]></ToUserName>
     65 
     66                             <FromUserName><![CDATA[%s]]></FromUserName>
     67 
     68                             <CreateTime>%s</CreateTime>
     69 
     70                             <MsgType><![CDATA[%s]]></MsgType>
     71 
     72                             <Content><![CDATA[%s]]></Content>
     73 
     74                             <FuncFlag>0</FuncFlag>
     75 
     76                             </xml>";             
     77 
     78                 if(!empty( $keyword ))
     79 
     80                 {
     81 
     82                       $msgType = "text";
     83 
     84                     $contentStr = "Welcome to wechat world!";
     85 
     86                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     87 
     88                     echo $resultStr;
     89 
     90                 }else{
     91 
     92                     echo "Input something...";
     93 
     94                 }
     95 
     96 
     97 
     98         }else {
     99 
    100             echo "";
    101 
    102             exit;
    103 
    104         }
    105 
    106     }
    107 
    108         
    109 
    110     private function checkSignature()
    111 
    112     {
    113 
    114         $signature = $_GET["signature"];
    115 
    116         $timestamp = $_GET["timestamp"];
    117 
    118         $nonce = $_GET["nonce"];    
    119 
    120                 
    121 
    122         $token = TOKEN;
    123 
    124         $tmpArr = array($token, $timestamp, $nonce);
    125 
    126         sort($tmpArr);
    127 
    128         $tmpStr = implode( $tmpArr );
    129 
    130         $tmpStr = sha1( $tmpStr );
    131 
    132         
    133 
    134         if( $tmpStr == $signature ){
    135 
    136             return true;
    137 
    138         }else{
    139 
    140             return false;
    141 
    142         }
    143 
    144     }
    145 
    146 }
    View Code

    配置成功后,按启用,基本配置就算完成了。

  • 相关阅读:
    JS动态添加事件
    Asp.Net验证控件浅析
    word 文档如何加密
    scp 自动带密码参数复制文件到主机
    Zabbix监控Dell服务器相关硬件资源
    Zabbix的history相关数据表数据太大,执行表分区操作过程
    mysql日常操作
    linux下利用tcpdump抓包工具排查nginx获取客户端真实IP实例
    解决ssh登录很慢的问题以及jumpserver登录主机出现:Authentication timeout
    keepalived启动后报错:(VI_1): received an invalid passwd!的解决办法
  • 原文地址:https://www.cnblogs.com/iampengl/p/9107690.html
Copyright © 2011-2022 走看看