首页 > 后端开发 > php教程 > 关于微信开发模式的PHP代码

关于微信开发模式的PHP代码

WBOY
发布: 2016-06-23 13:58:20
原创
947 人浏览过

<?php/**  * wechat php test  *///define your tokendefine("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();//$wechatObj->valid();$wechatObj->responseMsg();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;				$type =$postObj->MsgType;				$customevent = $postObj->Event;				$latitude =$postObj->Location_X;				$longitude =$postObj->Location_Y;                $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>";             			switch($type)			{			case "event";			if($customevent == "subscribe")			{$contentStr = "感谢关注"}			break;			case "image"			$contentStr ="图片很棒";		    break;			case "location";			$contentStr ="{$latitude},{longitude}";			break;			case "text";			switch($keyword)			{case "1"			 $contentStr="1"			 break;			 case "2"			 $contentStr ="2"			 break;			 default;			 $contentStr= "hi";}			 break;			 }			 $msgType = "text";			 $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);			 echo $resultStr;			 }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;		}	}}?>
登录后复制

代码检查了N遍但是功能一个都不能实现 !球大神帮帮~另外怎么也做不出来微信调用百度地图来实现导航如果能一起帮助就更好了


回复讨论(解决方案)

$keyword
输出看看

public function valid()    {        $echoStr = $_GET["echostr"];         //valid signature , option        if($this->checkSignature()){            echo $echoStr;            exit;        }    }
登录后复制
这代码是为了填写url 通过验证, 通过之后 ,可以把这个代码改了。如改成
public function valid()    {        $echoStr = $_GET["echostr"];         //valid signature , option        if($this->checkSignature()){            //echo $echoStr;            //exit;		responseMsg();        }    }
登录后复制
就行了、

微信公众账号,只能看作一种特殊的能识别用户身份的浏览器,你想要识现的功能,大多都像你做网站一下,只是入口不同而已,如果想要百度的导航,就要你的网站接入百度接口 http://api.map.baidu.com/lbsapi/cloud/webservice-placeapi.htm 只是用户的当前位置,可以让用户发地理位置消息。

如果微信 要做菜单,可以看这里 http://pan.baidu.com/s/1eQd12wy

代码有问题啊,case “1”:应该是冒号而不是读号啊,其他的没什么问题

 switch($type)            {            case "event":            if($customevent == "subscribe")            {$contentStr = "感谢关注";}            break;            case "image":            $contentStr ="图片很棒";            break;            case "location":            $contentStr ="{$latitude},{longitude}";            break;            case "text":            switch($keyword)            {case "1":             $contentStr="1";             break;             case "2":             $contentStr ="2";             break;             default;             $contentStr= "hi";}             break;             }
登录后复制

也要改下

default:
$contentStr= "hi";
             

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板