微信开发时, 如何进行服务器验证及接收回复信息呢? 分享原生PHP代码如下:
if(isset($_GET["echostr"])){ $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; //验证时会传递这个信息 $echostr = $_GET["echostr"]; $token = "zhuangzi"; $array = array($token, $timestamp, $nonce); //放到一个数组里 sort($array, SORT_STRING); // 将三人参数进行字典排序 $str = implode($array); // 将三个参数拼接成一个字符串 $str = sha1($str); // 进行 sha1加密 if($signature == $str){ echo $echostr; exit(); } else{ return false; } } else{ $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //解析post来的XML为一个对象$postObj $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; //请求消息的用户 $toUsername = $postObj->ToUserName; //"我"的公众号id $content = trim($postObj->Content); //消息内容 $MsgType = trim($postObj->MsgType); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; if($MsgType == "text"){ $ret = file_put_contents("1.txt", $content); //发送消息到 微信 begin $contentStr = $content; $time = time(); $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $MsgType, $contentStr); echo $resultStr; //发送消息到 微信 end } elseif($MsgType == "image"){ $picurl = trim($postObj->PicUrl); $file = file_get_contents($picurl); $path = time().".jpg"; $ret = file_put_contents($path, $file); } }微信接收及回复信息