用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

微信token认证程序

2016-08-25 作者: 小马过河111举报

[php]代码库

<?php 
/** 
  * @author heqing 
  * @version v1.0 
  */ 


//define your token 
define("TOKEN", "weixin");//这里填写的是你在微信上设置的TOKEN,但是必须保证与微信公众平台 接口配置信息一致 
$wechatObj = new wechatCallbackapiTest(); 
$wechatObj->valid();//这里是测试网站配置信息和开发的是否一致。

$wechatObj->responseMsg();//新增加这一项,目的是调用responseMsg()这个功能。



class wechatCallbackapiTest 
{

//若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。

public function valid() 
    { 
        $echoStr = $_GET["echostr"]; 


        //valid signature , option 
        if($this->checkSignature()){ 
		header('content-type:text');
        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 ))// $keyword是关键词,即为用户发送的信息 
                { 
                $msgType = "text";//文本格式的消息 
                $contentStr = "Welcome to wechat world!";//预制消息回复 
                
                if ($keyword == "index") { 
                $contentStr = "welcome to nongdaxy.com"; 
                } 
                
                if ($keyword == "首页") { 
                $contentStr = "欢迎来到校园之窗"; 
                } 
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); 
                echo $resultStr; 
                }else{ 
                echo "Input something..."; 
                } 


        }else { 
        echo ""; 
        exit; 
        } 
    } 
// 开发者通过检验signature对请求进行校验 
private function checkSignature() 
{ 
        $signature = $_GET["signature"]; 
        $timestamp = $_GET["timestamp"]; 
        $nonce = $_GET["nonce"]; 
        
$token = TOKEN; 
$tmpArr = array($token, $timestamp, $nonce); 
sort($tmpArr); 
$tmpStr = implode( $tmpArr ); 
$tmpStr = sha1( $tmpStr ); 

if( $tmpStr == $signature ){ 
return true; 
}else{ 
return false; 
} 
} 
} 


?> 

[源代码打包下载]




网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...