首页 > 后端开发 > php教程 > 用PHP做微信开发用微信示例代码但是收不到xml表单

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

WBOY
发布: 2016-06-23 13:12:49
原创
836 人浏览过

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


那怎样才不是直接回复啊??
做微信久了,就会慢慢理解了!
我大概知道什么意思了~谢谢~
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板