ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用して WeChat を開発し、WeChat サンプル コードを使用しますが、XML フォームを受信できません

PHP を使用して WeChat を開発し、WeChat サンプル コードを使用しますが、XML フォームを受信できません

WBOY
リリース: 2016-06-23 13:12:49
オリジナル
837 人が閲覧しました

タイトルのとおり、
PHP を使用して WeChat パブリック アカウントを開発しようとしています、
WeChat サンプル コードを使用しています、
TOKEN 検証は成功しました、
「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;		}	}}?>
ログイン後にコピー


ディスカッション (解決策) に返信

WeChat 上でインターフェイスを実装すると、戻り値には XML ドキュメント情報が含まれ、直接の XML ドキュメントは存在しません。 Reply

あなたの返信は WeChat サーバーを通じてあなたに転送されます。WeChat サーバーはあなたが送信した XML を解析して、対応する受信者を見つけます。コンテンツは のコンテンツです

WeChat でそのインターフェイスを実装すると、戻り値には XML ドキュメント情報が含まれます。 XML ドキュメントではなく、直接返信してみてはいかがでしょうか。 ?


あなたの返信は WeChat サーバーを通じてあなたに転送されます。WeChat サーバーはあなたが送信した XML を解析して、対応する受信者を見つけます。コンテンツは のコンテンツです

XML ファイルのコンテンツを取得したい場合はどうすればよいでしょうか?


WeChat にそのインターフェースを実装すると、戻り値には XML 文書情報が含まれますが、直接返信には XML 文書は含まれません


それでは、なぜ直接返信しないのでしょうか? ?


WeChatを長くやっていると徐々に理解できるようになります!

WeChat にそのインターフェースを実装すると、戻り値には XML 文書情報が含まれますが、直接返信には XML 文書は含まれません


それでは、なぜ直接返信しないのでしょうか? ?


WeChatを長くやっていると徐々に理解できるようになります!
意味はわかるかも〜ありがとう〜
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート