1.PHP微信公众号开发之配置验证

   这是我在优快云上发的第一篇博客,多多关照!

   由于前几年接触过微信公众号的开发,给我的印象是简单缺不失趣味,然后后面又去搞了JAVA WEB开发大笑,考虑到JAVA太重不太适合微信开发,所以选择了以高效易上手的PHP来进行微信的开发(几年前也是用的PHP  囧)

   随着移动互联网的发展,微信的地位也不需要我多做解释了。开发微信公众号能节省很多成本,而且拥有8亿的流量入口,相比起传统的Android和IOS平台的推广那也是大大的方便! 

  好了切入正题,今天带来的是微信公众号开发的配置验证,这是微信开发要做的第一步也是对微信开发认知很重要的一步。

1.进入微信公众号后台进入开发者模式将各项参数配置好

2.编写自己的验证代码

<?php
define('Token', 'weixin'); //定义Token 这里填自己在参数里配置的Token
$wechat_obj = new checkCallbackApi(); 
if(isset($_GET['echostr'])) //通过判断echostr是否是验证接口
{
  $wechat_obj->valid(); //调用$wechat_obj实例的valid方法
}
else
{
  echo '调用responseMsg方法';
  $wechat_obj->responseMsg();//调用$wechat_obj实例的responsemsg方法
}
class checkCallbackApi
{  
     /*
     配置环境输出echostr的function
     */
     public function valid()
     {
     	$echoStr = $_GET['echostr']; //通过GET方法获取echostr的值
     	if($this->checksSignature) //调用checkSignature方法验证signature
     	{
     		echo $echoStr; //输出echoStr
     		exit;
     	}
     }
	/*
	校检signature的function
	*/	
	private function checksSignature()
	{
		$signature = $_GET['signature']; //GET方式得到signature
        $timestamp = $_GET['timestamp']; //GET方式得到timestamp(时间戳)
        $nonce = $_GET['nonce']; //GET方式得到nonce
           
        $token = Token;  //获得预定义的Token
        $tmpArr = array($token,$timestamp,$nonce);  //获得$token,$timestamp,$nonce组成的数组
        sort($tmpArr); //对数组按字母进行排序
        $tmpArr = implode($tmpArr); //将tmpArr转换成字符串
        $tmpArr = sha1($tmpArr); //对字符串进行sha1加密
        //将sha1加密后的字符串与接收到的signature进行比对 相等则返回true
        if($tmpArr == $signature)  
        	return true;
        else
       		return false;
	}
	/*
	返回消息的function
	*/
	public function responseMsg()
	{
		$postStr = file_get_contents('php://input'); //取出POST数据 
        if(!empty($postStr))
        {
        	$postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA); //夹在POST数据中的XML
        	$FromUsername = $postObj->FromUsername; //获得FromUsername参数
        	$ToUsername = $postObj->ToUsername; //获得ToUsername参数
        	$keyword = trim($postObj->Content); //获得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';  //消息类型为text
				$resultContent = 'Welcome to wechat!'; //返回的消息内容
                $returnXMLString = sprintf($textTpl,$FromUsername,$ToUsername,$time,$msgType,$resultContent); //格式化字符串 %s
                echo $returnXMLString; //输出返回的XML数据
			}
			else
			{
				echo 'responseMsg error!'; //输出错误消息
			}


        }

	}

}

?>
3.将自己的代码上传至自己的服务器 也可以去申请新浪的sae或者阿里云的虚拟机主机 这些都是可以的

4.将部署完的代码填入微信公众平台的配置选项,提交通过就ok了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值