目录
回复内容:
首页 后端开发 php教程 微信开发模式 - 微信接入验证代码中,是什么意思?

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

Jun 06, 2016 pm 08:08 PM
php

代码如下:

<code>&lt;?php
/**</code>
登录后复制
登录后复制
    • wechat php test
      */

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

    1. wechatCallbackapiTest
      {

      <code>   public function valid()
         {
             $echoStr = $_GET["echostr"];
      
             //valid signature , option
             if($this-&gt;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-&gt;FromUserName;
                     $toUsername = $postObj-&gt;ToUserName;
                     $keyword = trim($postObj-&gt;Content);
                     $time = time();
                     $textTpl = "&lt;xml&gt;
                                 &lt;ToUserName&gt;&lt;![CDATA[%s]]&gt;&lt;/ToUserName&gt;
                                 &lt;FromUserName&gt;&lt;![CDATA[%s]]&gt;&lt;/FromUserName&gt;
                                 &lt;CreateTime&gt;%s&lt;/CreateTime&gt;
                                 &lt;MsgType&gt;&lt;![CDATA[%s]]&gt;&lt;/MsgType&gt;
                                 &lt;Content&gt;&lt;![CDATA[%s]]&gt;&lt;/Content&gt;
                                 &lt;FuncFlag&gt;0&lt;/FuncFlag&gt;
                                 &lt;/xml&gt;";             
                     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;
             }
         }</code>
      登录后复制
      登录后复制

      }

      ?>

    回复内容:

    代码如下:

    <code>&lt;?php
    /**</code>
    登录后复制
    登录后复制
    • wechat php test
      */

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

    1. wechatCallbackapiTest
      {

      <code>   public function valid()
         {
             $echoStr = $_GET["echostr"];
      
             //valid signature , option
             if($this-&gt;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-&gt;FromUserName;
                     $toUsername = $postObj-&gt;ToUserName;
                     $keyword = trim($postObj-&gt;Content);
                     $time = time();
                     $textTpl = "&lt;xml&gt;
                                 &lt;ToUserName&gt;&lt;![CDATA[%s]]&gt;&lt;/ToUserName&gt;
                                 &lt;FromUserName&gt;&lt;![CDATA[%s]]&gt;&lt;/FromUserName&gt;
                                 &lt;CreateTime&gt;%s&lt;/CreateTime&gt;
                                 &lt;MsgType&gt;&lt;![CDATA[%s]]&gt;&lt;/MsgType&gt;
                                 &lt;Content&gt;&lt;![CDATA[%s]]&gt;&lt;/Content&gt;
                                 &lt;FuncFlag&gt;0&lt;/FuncFlag&gt;
                                 &lt;/xml&gt;";             
                     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;
             }
         }</code>
      登录后复制
      登录后复制

      }

      ?>

    帅哥||美女

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

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

    点击此处查看手册链接

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

    不知道是不是我对你的问题理解有问题,但从你问题和代码来看,这是代表这是PHP脚本

    <?php <<--php代码开始

    ?> <<--php代码结束

  • 本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门文章

    仓库:如何复兴队友
    3 周前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    1 周前 By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒险:如何获得巨型种子
    3 周前 By 尊渡假赌尊渡假赌尊渡假赌

    热门文章

    仓库:如何复兴队友
    3 周前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    1 周前 By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒险:如何获得巨型种子
    3 周前 By 尊渡假赌尊渡假赌尊渡假赌

    热门文章标签

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

    适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南

    CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

    CakePHP 日期和时间

    CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

    CakePHP 项目配置

    CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

    CakePHP 文件上传

    CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

    CakePHP 路由

    讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

    讨论 CakePHP

    如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

    如何设置 Visual Studio Code (VS Code) 进行 PHP 开发

    CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

    CakePHP 快速指南

    See all articles