Home >Backend Development >PHP Tutorial >用PHP做微信开发用微信示例代码但是收不到xml表单

用PHP做微信开发用微信示例代码但是收不到xml表单

WBOY
WBOYOriginal
2016-06-23 13:12:49833browse

如题,
我在尝试用PHP做微信公众号的开发,
用的是微信示例代码,
TOKEN验证成功,
可以收到“Welcome to wechat world!”这个回复,
但是收不到xml表单是为什么?
还是说xml表单本来就是看不到的?
那我要如何获得表单上的内容?

<?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)){                /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,                   the best way is to check the validity of xml by yourself */                libxml_disable_entity_loader(true);              	$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(!empty( $keyword ))                {              		$msgType = "text";                	$contentStr = "Welcome to wechat world!";                	$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);                	echo $resultStr;                }else{                	echo "Input something...";                }        }else {        	echo "";        	exit;        }    }			private function checkSignature()	{        // you must define TOKEN by yourself        if (!defined("TOKEN")) {            throw new Exception('TOKEN is not defined!');        }                $signature = $_GET["signature"];        $timestamp = $_GET["timestamp"];        $nonce = $_GET["nonce"];        				$token = TOKEN;		$tmpArr = array($token, $timestamp, $nonce);        // use SORT_STRING rule		sort($tmpArr, SORT_STRING);		$tmpStr = implode( $tmpArr );		$tmpStr = sha1( $tmpStr );				if( $tmpStr == $signature ){			return true;		}else{			return false;		}	}}?>


回复讨论(解决方案)

微信这块你实现他的接口的时候返回值会有xml文档信息,直接回复没有xml文档

你的回复是通过微信服务器转发给你的,微信服务器会解析你发送的xml找到对应的接收人。内容就是中的内容

微信这块你实现他的接口的时候返回值会有xml文档信息,直接回复没有xml文档


那怎样才不是直接回复啊??

你的回复是通过微信服务器转发给你的,微信服务器会解析你发送的xml找到对应的接收人。内容就是中的内容


那如果想获得xml文件里面的内容应该要怎么做呢?


微信这块你实现他的接口的时候返回值会有xml文档信息,直接回复没有xml文档


那怎样才不是直接回复啊??
做微信久了,就会慢慢理解了!


微信这块你实现他的接口的时候返回值会有xml文档信息,直接回复没有xml文档


那怎样才不是直接回复啊??
做微信久了,就会慢慢理解了!
我大概知道什么意思了~谢谢~
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn