php开发日记之微信开发模式

学php最大的热情就是在大一的时候接触微信公众平台,第一次玩的时候还是编辑模式,慢慢深入就接触到开发模式了,今天写开发模式的接入,这是微信开发的最基础的。
1.首先呢,你必须要有服务器,不管是新浪云sae,百度云bae,阿里云ace都可以,或者是虚拟空间,云主机都是可以的,那我当然是使用的阿里云的云主机作为开发服务器,依旧是appserv集成环境,有独立ip
2.打开微信公众平台,点击开发者中心,我们需要做的就是将服务器配置这地方连接好,下面说怎么配置
3.找到开发者文档,点击左边开发者必读,找到php示例代码下载,解压,将所得到的wx_sample.php文件上传到服务器的www文件夹下面,我下面的代码是基于官方的修改

<?php
define("TOKEN", "weixin");//定义常量TOKEN为weixin,也就是后台填写的token
$wechatObj = new wechatCallbackapiTest();//实例化类对象
if(isset($_GET['echostr'])){//判断GET请求中是否有echostr对象
	$wechatObj->valid();
}else{
	$wechatObj->responseMsg();
}

class wechatCallbackapiTest//定义类,并实现三种方法
{
	public function valid()
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){//调用checkSignatuure方法
        	echo $echoStr;
        	exit;
        }
    }
	private function checkSignature()//检查签名
	{
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        		
		$token = TOKEN;
		$tmpArr = array($token, $timestamp, $nonce);//token,时间戳,随机数
		sort($tmpArr);
		$tmpStr = implode( $tmpArr );
		$tmpStr = sha1( $tmpStr );
		
		if( $tmpStr == $signature ){
			return true;
		}else{
			return false;
		}
	}

    public function responseMsg()
    {
		
		$postStr = $GLOBALS["HTTP_RAW_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( $keyword =="?")
                {
              		$msgType = "text";
                	$contentStr = date("Y-m-d H:i:s",time());
                	$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;//这几句是封装回复的xml数据包
					
                }else {
        	echo "";
        	exit;
        }
		}
		}
}

?>
这代码的意思是,在微信平台回复?,将自动回复当前时间给发送者。代码解释就直接标注在代码上了。

4.将微信后台URL这一栏填写服务器IP地址(或者域名)/wx_sample.php,token一栏填写weixin即可,点击提交,即可提交成功,如果提交失败,可能是服务器响应太慢,重新提交,或者换一台延迟第一点的服务器。

5.至于加密方式可以随便选一个暂时,毕竟这个代码只是用来测试的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值