天天看點

微信接口自動回複

<code>&lt;?php</code>

<code>/*</code>

<code> </code><code>http://fanyi.youdao.com/openapi.do?keyfrom=weifan&amp;key=791593512&amp;type=data&amp;doctype=&lt;doctype&gt;&amp;version=1.1&amp;q=要翻譯的文本 </code>

<code>    </code><code>方倍工作室 http://www.cnblogs.com/txw1958/</code>

<code>    </code><code>CopyRight 2013 www.doucube.com  All Rights Reserved</code>

<code>*/</code>

<code>traceHttp();</code>

<code>define(</code><code>"TOKEN"</code><code>, </code><code>"weixin"</code><code>);</code>

<code>$wechatObj</code> <code>= </code><code>new</code> <code>wechatCallbackapiTest();</code>

<code>if</code> <code>(isset(</code><code>$_GET</code><code>[</code><code>'echostr'</code><code>])) {</code>

<code>    </code><code>$wechatObj</code><code>-&gt;valid();</code>

<code>}</code><code>else</code><code>{</code>

<code>    </code><code>$wechatObj</code><code>-&gt;responseMsg();</code>

<code>}</code>

<code>class</code> <code>wechatCallbackapiTest</code>

<code>{</code>

<code>    </code><code>public</code> <code>function</code> <code>valid()</code>

<code>    </code><code>{</code>

<code>        </code><code>$echoStr</code> <code>= </code><code>$_GET</code><code>[</code><code>"echostr"</code><code>];</code>

<code>        </code><code>if</code><code>(</code><code>$this</code><code>-&gt;checkSignature()){</code>

<code>            </code><code>echo</code> <code>$echoStr</code><code>;</code>

<code>            </code><code>exit</code><code>;</code>

<code>        </code><code>}</code>

<code>    </code><code>}</code>

<code>    </code><code>private</code> <code>function</code> <code>checkSignature()</code>

<code>        </code><code>$signature</code> <code>= </code><code>$_GET</code><code>[</code><code>"signature"</code><code>];</code>

<code>        </code><code>$timestamp</code> <code>= </code><code>$_GET</code><code>[</code><code>"timestamp"</code><code>];</code>

<code>        </code><code>$nonce</code> <code>= </code><code>$_GET</code><code>[</code><code>"nonce"</code><code>];</code>

<code>        </code><code>$token</code> <code>= TOKEN;</code>

<code>        </code><code>$tmpArr</code> <code>= </code><code>array</code><code>(</code><code>$token</code><code>, </code><code>$timestamp</code><code>, </code><code>$nonce</code><code>);</code>

<code>        </code><code>sort(</code><code>$tmpArr</code><code>);</code>

<code>        </code><code>$tmpStr</code> <code>= implode( </code><code>$tmpArr</code> <code>);</code>

<code>        </code><code>$tmpStr</code> <code>= sha1( </code><code>$tmpStr</code> <code>);</code>

<code>        </code><code>if</code><code>( </code><code>$tmpStr</code> <code>== </code><code>$signature</code> <code>){</code>

<code>            </code><code>return</code> <code>true;</code>

<code>        </code><code>}</code><code>else</code><code>{</code>

<code>            </code><code>return</code> <code>false;</code>

<code>    </code><code>public</code> <code>function</code> <code>responseMsg()</code>

<code>        </code><code>$postStr</code> <code>= </code><code>$GLOBALS</code><code>[</code><code>"HTTP_RAW_POST_DATA"</code><code>];</code>

<code>        </code><code>//simplexml_load_string() 函數把 XML 字元串載入對象中。</code>

<code>        </code><code>if</code> <code>(!</code><code>empty</code><code>(</code><code>$postStr</code><code>)){</code>

<code>            </code><code>$postObj</code> <code>= simplexml_load_string(</code><code>$postStr</code><code>, </code><code>'SimpleXMLElement'</code><code>, LIBXML_NOCDATA);</code>

<code>            </code><code>$fromUsername</code> <code>= </code><code>$postObj</code><code>-&gt;FromUserName;</code>

<code>            </code><code>$toUsername</code> <code>= </code><code>$postObj</code><code>-&gt;ToUserName;</code>

<code>            </code><code>$keyword</code> <code>= trim(</code><code>$postObj</code><code>-&gt;Content);</code>

<code>            </code><code>$time</code> <code>= time();</code>

<code>            </code><code>$textTpl</code> <code>= "&lt;xml&gt;</code>

<code>                        </code><code>&lt;ToUserName&gt;&lt;![CDATA[%s]]&gt;&lt;/ToUserName&gt;</code>

<code>                        </code><code>&lt;FromUserName&gt;&lt;![CDATA[%s]]&gt;&lt;/FromUserName&gt;</code>

<code>                        </code><code>&lt;CreateTime&gt;%s&lt;/CreateTime&gt;</code>

<code>                        </code><code>&lt;MsgType&gt;&lt;![CDATA[%s]]&gt;&lt;/MsgType&gt;</code>

<code>                        </code><code>&lt;Content&gt;&lt;![CDATA[%s]]&gt;&lt;/Content&gt;</code>

<code>                        </code><code>&lt;FuncFlag&gt;0&lt;/FuncFlag&gt;</code>

<code>                        </code><code>&lt;/xml&gt;";</code>

<code>                        </code><code>//sprintf() 函數把格式化的字元串寫入一個變量中</code>

<code>                        </code><code>//strstr() 函數搜尋一個字元串在另一個字元串中的第一次出現</code>

<code>            </code><code>if</code><code>(</code><code>$keyword</code> <code>== </code><code>"1"</code><code>)</code>

<code>            </code><code>{</code>

<code>                </code><code>$msgType</code> <code>= </code><code>"text"</code><code>;</code>

<code>                </code><code>$contentStr</code> <code>= </code><code>"哈哈"</code><code>;</code>

<code>                </code><code>$resultStr</code> <code>= sprintf(</code><code>$textTpl</code><code>, </code><code>$fromUsername</code><code>, </code><code>$toUsername</code><code>, </code><code>$time</code><code>, </code><code>$msgType</code><code>, </code><code>$contentStr</code><code>);</code>

<code>                </code><code>echo</code> <code>$resultStr</code><code>;</code>

<code>            </code><code>}</code><code>elseif</code><code>( </code><code>$keyword</code> <code>== </code><code>"A"</code><code>)</code>

<code>                </code><code>$contentStr</code> <code>= </code><code>"OK"</code><code>;</code>

<code>            </code><code>}</code><code>elseif</code><code>( </code><code>$keyword</code> <code>== </code><code>"B"</code><code>)</code>

<code>                </code><code>$contentStr</code> <code>= </code><code>"good"</code><code>;</code>

<code>            </code><code>}</code><code>else</code> <code>if</code><code>(</code><code>$keyword</code> <code>== </code><code>"fff"</code><code>){</code>

<code>                    </code><code>$msgType</code> <code>= </code><code>"text"</code><code>;</code>

<code>                </code><code>$contentStr</code> <code>= </code><code>"asasasas!!&lt;font color = 'red'&gt;"</code><code>.</code><code>$keyword</code><code>.</code><code>"&lt;/font&gt;zzzz"</code><code>;</code>

<code>exit</code><code>();</code>

<code>               </code><code>$msgType</code> <code>= </code><code>"text"</code><code>;</code>

<code>                </code><code>$contentStr</code> <code>= </code><code>$keyword</code><code>.</code><code>"zzzz"</code><code>;</code>

<code>function</code> <code>traceHttp()</code>

<code>    </code><code>//“REMOTE_ADDR”:正在浏覽目前頁面使用者的 IP 位址。 </code>

<code>    </code><code>logger(</code><code>"\n\nREMOTE_ADDR:"</code><code>.</code><code>$_SERVER</code><code>[</code><code>"REMOTE_ADDR"</code><code>].(</code><code>strstr</code><code>(</code><code>$_SERVER</code><code>[</code><code>"REMOTE_ADDR"</code><code>],</code><code>'101.226'</code><code>)? </code><code>" FROM WeiXin"</code><code>: </code><code>"Unknown IP"</code><code>));</code>

<code>    </code><code>logger(</code><code>"QUERY_STRING:"</code><code>.</code><code>$_SERVER</code><code>[</code><code>"QUERY_STRING"</code><code>]);</code>

<code>function</code> <code>logger(</code><code>$log_content</code><code>)</code>

<code>    </code><code>if</code><code>(isset(</code><code>$_SERVER</code><code>[</code><code>'HTTP_APPNAME'</code><code>])){   </code><code>//SAE</code>

<code>        </code><code>sae_set_display_errors(false);   </code><code>//</code>

<code>        </code><code>sae_debug(</code><code>$log_content</code><code>);   </code><code>//sae_debug是儲存到日志裡面, 不會儲存到storage裡面.</code>

<code>        </code><code>sae_set_display_errors(true);</code>

<code>    </code><code>}</code><code>else</code><code>{ </code><code>//LOCAL</code>

<code>        </code><code>$max_size</code> <code>= 500000;</code>

<code>        </code><code>$log_filename</code> <code>= </code><code>"weixinlog.xml"</code><code>;</code>

<code>        </code><code>if</code><code>(</code><code>file_exists</code><code>(</code><code>$log_filename</code><code>) </code><code>and</code> <code>(</code><code>abs</code><code>(</code><code>filesize</code><code>(</code><code>$log_filename</code><code>)) &gt; </code><code>$max_size</code><code>)){unlink(</code><code>$log_filename</code><code>);}</code>

<code>        </code><code>file_put_contents</code><code>(</code><code>$log_filename</code><code>, </code><code>date</code><code>(</code><code>'Y-m-d H:i:s'</code><code>).</code><code>$log_content</code><code>.</code><code>"\r\n"</code><code>, FILE_APPEND);</code>

<code>?&gt;</code>

      本文轉自噼裡啪啦啦 51CTO部落格,原文連結:http://blog.51cto.com/pilipala/1661398,如需轉載請自行聯系原作者

繼續閱讀