微信开发者基础接口实现

作者:Liaodeity - 2015年03月20日

    这是一个微信基础类型实现的接口类,发送文本信息,发送图文信息,绑定关注微信号信息。有附件,大家可以下载看看,欢迎交流

<?php
/**
  * wechat php for simple
  */

/*填写token*/
define("TOKEN", "11225445dd");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

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

        //valid signature , option
        if($this->checkSignature()){
			$this->responseMsg();
        	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;
				$msgtype = $postObj->MsgType;
				$event = $postObj->Event;
                $eventkey = $postObj->EventKey;
				$msgid = $postObj->MsgId;
				$picurl = $postObj->PicUrl;
				$createtime = $postObj->CreateTime;
                $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>"; 
				$pictextTpl = "<xml>
								<ToUserName><![CDATA[%s]]></ToUserName>
								<FromUserName><![CDATA[%s]]></FromUserName>
								<CreateTime>%s</CreateTime>
								<MsgType><![CDATA[%s]]></MsgType>
								<ArticleCount>1</ArticleCount>
								<Articles>
								<item>
								<Title><![CDATA[%s]]></Title> 
								<Description><![CDATA[%s]]></Description>
								<PicUrl><![CDATA[%s]]></PicUrl>
								<Url><![CDATA[%s]]></Url>
								</item>
								</Articles>
								</xml>"; 
				if(!empty($event)&&$event=="subscribe"){/*关注事件*/
              		$msgType = "text";
                	$contentStr = "关注推送消息";/*推送文字给用户*/
                	$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;				
				}else{
                	echo "";
                }
				if(!empty($event)&&$event=="CLICK"){
					if(!empty($eventkey)&&$eventkey=="bangding"){/*文本推送*/
						$msgType = "text";
						$contentStr = "点击事件推送消息";
						$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
						echo $resultStr;					
					}
					if(!empty($eventkey)&&$eventkey=="love1"){/*图文推送*/
						$msgType = "news";
						$title='资讯标题';
						$description = '资讯的描述';
						$img='图片的地址';
						$url="点击资讯详细页面";
						$resultStr = sprintf($pictextTpl, $fromUsername, $toUsername,   $time, $msgType, $title, $description, $img, $url);
						echo $resultStr;						
					}
				}
				
				if($msgtype=="image"){/*接收客户上传图片*/
					$Sql="insert into tb_wx_image (openid,MsgType,MsgId,PicUrl,CreateTime) values ('".$fromUsername."','".$msgtype."','".$msgid."','".$picurl."','".$createtime."')";
					mysql_query($Sql);
					mysql_close();
              		$msgType = "text";
                	$contentStr = "感谢您上传图片";
                	$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;					
				}
        }else {
        	echo "";
        	exit;
        }
    }

	/**
	 * [checkSignature 验证消息的真实性]
	 * @return [type] [description]
	 */
	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;
		}
	}
}

?>


本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/252

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!