Heim >Backend-Entwicklung >PHP-Tutorial >Entwicklung des öffentlichen WeChat-Kontos --- Problem mit dem Wert des WeChat-Anforderungsservers

Entwicklung des öffentlichen WeChat-Kontos --- Problem mit dem Wert des WeChat-Anforderungsservers

WBOY
WBOYOriginal
2016-07-29 09:12:061339Durchsuche

Ich habe kürzlich ein offizielles WeChat-Konto erstellt und einige neue Dinge gelernt. Ich werde sie hier aufzeichnen und hoffe, dass sie anderen helfen können

<span>public function </span><span>responseMsg</span>()
    {
<span>//        $requestStr = $_REQUEST['mpxml'];  //线下测试放开
</span><span>$requestStr </span>= <span>$GLOBALS</span>[<span>"HTTP_RAW_POST_DATA"</span>]<span>;</span><span>//上线放开
</span><span>if</span>(<span>$requestStr</span>==<span>''</span>)<span>$requestStr </span>= file_get_contents(<span>"php://input"</span>)<span>;</span><span>//上线放开
</span><span>$this</span>-><span>Log</span>-><span>output</span>(<span>'req'</span><span>, </span><span>"请求报文" </span>. <span>$requestStr</span>)<span>;
</span><span>if </span>(!<span>empty</span>(<span>$requestStr</span>)) {
            <span>$postObj </span>= simplexml_load_string(<span>$requestStr</span><span>, </span><span>'SimpleXMLElement'</span><span>, </span><span><em>LIBXML_NOCDATA</em></span>)<span>;
</span><span>$fromUsername </span>= <span>$postObj</span>-><span>FromUserName</span><span>;
</span><span>$toUsername </span>= <span>$postObj</span>-><span>ToUserName</span><span>;
</span><span>$msgType </span>= <span>$postObj</span>-><span>MsgType</span><span>;
</span><span>$keyword </span>= trim(<span>$postObj</span>-><span>Content</span>)<span>;
</span><span>$arr </span>= <span>array</span>(<span>'fromUsername' </span>=> <span>$fromUsername</span><span>, </span><span>'toUsername' </span>=> <span>$toUsername</span><span>, </span><span>'msgType' </span>=> <span>$msgType</span><span>,
</span><span>'keyword' </span>=> <span>$keyword</span><span>, </span><span>'postObj' </span>=> <span>$postObj</span>)<span>;
</span><span>$responseStr </span>= <span>$this</span>-><span>controllers</span>-><span>index</span>(<span>$arr</span>)<span>;
</span><span>$this</span>-><span>Log</span>-><span>output</span>(<span>'res'</span><span>, </span><span>"应答报文" </span>. <span>$responseStr</span>)<span>;
</span><span>echo </span><span>$responseStr</span><span>;
</span>} <span>else </span>{
            <span>echo </span><span>''</span><span>;
</span><span>exit</span><span>;
</span>}
    }

Das Obige ist Teil des Codes zum Verarbeiten von Nachrichten

<span>$requestStr = $_REQUEST['mpxml']; </span>
Akzeptieren Sie natürlich den Wert von name als mpxml

Aber nachdem der Servercode online ist, sollte das Schreiben auf diese Weise nicht in der Lage sein, die von WeChat vom Server gesendete Anforderungsnachricht (XML-Format) zu akzeptieren. Entweder

<span>$requestStr </span>= <span>$GLOBALS</span>[<span>"HTTP_RAW_POST_DATA"</span>]<span>;</span><span>//上线放开</span>
oder
<span>$requestStr </span>= file_get_contents(<span>"php://input"</span>)<span>;</span><span>//上线放开</span>
können Anforderungsnachrichten von WeChat empfangen. Sie belastet den Speicher weniger und erfordert keine speziellen php.int-Einstellungen.

Das Obige hat die Entwicklung öffentlicher WeChat-Konten vorgestellt – das Problem des WeChat-Anforderungsserverwerts, einschließlich der relevanten Inhalte. Ich hoffe, es wird für Freunde hilfreich sein, die an PHP-Tutorials interessiert sind.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn