>  기사  >  백엔드 개발  >  用PHP做微信开发用微信示例代码但是收不到xml表单

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

WBOY
WBOY원래의
2016-06-23 13:12:49814검색

如题,
我在尝试用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文档


那怎样才不是直接回复啊??
做微信久了,就会慢慢理解了!
我大概知道什么意思了~谢谢~
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.