微信开发模式 - 微信接入验证代码中,<?php?>是什么意思?

查看:93
本文介绍了微信开发模式 - 微信接入验证代码中,<?php?>是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

代码如下:

<?php
/**

    • wechat php test
      */

    //define your token
    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    $wechatObj->valid();

    1. wechatCallbackapiTest
      {

         public function valid()
         {
             $echoStr = $_GET["echostr"];
      
             //valid signature , option
             if($this->checkSignature()){
                 echo $echoStr;
                 exit;
             }
         }
      
         public function responseMsg()
         {
             //get post data, May be due to the different environments
             $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
      
               //extract post data
             if (!empty($postStr)){
                     /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                        the best way is to check the validity of xml by yourself */
                     libxml_disable_entity_loader(true);
                       $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                     $fromUsername = $postObj->FromUserName;
                     $toUsername = $postObj->ToUserName;
                     $keyword = trim($postObj->Content);
                     $time = time();
                     $textTpl = "<xml>
                                 <ToUserName><![CDATA[%s]]></ToUserName>
                                 <FromUserName><![CDATA[%s]]></FromUserName>
                                 <CreateTime>%s</CreateTime>
                                 <MsgType><![CDATA[%s]]></MsgType>
                                 <Content><![CDATA[%s]]></Content>
                                 <FuncFlag>0</FuncFlag>
                                 </xml>";             
                     if(!empty( $keyword ))
                     {
                           $msgType = "text";
                         $contentStr = "Welcome to wechat world!";
                         $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                         echo $resultStr;
                     }else{
                         echo "Input something...";
                     }
      
             }else {
                 echo "";
                 exit;
             }
         }
             
         private function checkSignature()
         {
             // you must define TOKEN by yourself
             if (!defined("TOKEN")) {
                 throw new Exception('TOKEN is not defined!');
             }
             
             $signature = $_GET["signature"];
             $timestamp = $_GET["timestamp"];
             $nonce = $_GET["nonce"];
                     
             $token = TOKEN;
             $tmpArr = array($token, $timestamp, $nonce);
             // use SORT_STRING rule
             sort($tmpArr, SORT_STRING);
             $tmpStr = implode( $tmpArr );
             $tmpStr = sha1( $tmpStr );
             
             if( $tmpStr == $signature ){
                 return true;
             }else{
                 return false;
             }
         }

      }

      ?>

    解决方案

    帅哥||美女

    看到你的疑惑,我也感觉很困惑,我有一个不成熟的小建议...在了解并且准备使用一门语言之前,大致浏览下它的官方手册。

    <?php 这标志着php文件的开端,就像上帝说,要有光,于是世间有了光一样。。。。

    点击此处查看手册链接

    多看看手册,对使用PHP处理事务很有帮助的,个人认为,使用任何语言的时候都要先看一遍官方手册才行啊。

    这篇关于微信开发模式 - 微信接入验证代码中,&lt;?php?&gt;是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆