zoukankan      html  css  js  c++  java
  • 微信公众号验证服务器资源代码

    <?php
    //define your token
    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    $wechatObj->valid();
    class 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)) {
    			$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() {
    		$signature = $_GET["signature"];
    		$timestamp = $_GET["timestamp"];
    		$nonce = $_GET["nonce"];
    		$token = TOKEN;
    		$tmpArr = array($token, $timestamp, $nonce);
    		sort($tmpArr, SORT_STRING);
    		$tmpStr = implode( $tmpArr );
    		$tmpStr = sha1( $tmpStr );
    		if( $tmpStr == $signature ) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    }
    ?>
    
    
  • 相关阅读:
    深入Apache NiFi 之源码学习
    Apache NiFi 核心概念和关键特性
    运营商手机视频流量包业务日志ETL及统计分析
    HDP Hive性能调优
    redis 实现登陆次数限制
    Hadoop和Spark的Shuffer过程对比解析
    Scala-基础知识
    Python基础知识问答
    Python基础知识+计算器练习
    Sqoop架构原理及常用命令参数
  • 原文地址:https://www.cnblogs.com/wuxiaoshi/p/15238888.html
Copyright © 2011-2022 走看看