微信開發配置文件
<?php
// *
// * 1)將token、timestamp、nonce三個參數進行字典序排序
// * 2)將三個參數字符串拼接成一個字符串進行sha1加密
// * 3)開發者獲得加密後的字符串可與signature對比,標識該請求來源於微信
//微信發來的參數
// signature 微信加密簽名,signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。
// timestamp 時間戳
// nonce 隨機數
// echostr 隨機字符串
//微信服務get的方式,請求這個文件
$token = ‘rain8023smile‘;
$signature = $_GET[‘signature‘];
$nonce = $_GET[‘nonce‘];
$timestamp = $_GET[‘timestamp‘];
$echostr = $_GET[‘echostr‘];
$array = [$nonce,$token,$timestamp];
//1.數組字典排序
sort($array);
//2.拼接成字符串並sha1加密
$str = sha1(implode($array));
//3.對比
if ($str == $signature && $echostr) {
//第一次接入微信,配置完成
echo $echostr;
exit();
}else{
//第一次之外的,微信發過來的消息
//微信發來的消息是xml的格式(IM xmpp協議-xml數據)
//接收xml格式的數據
//1.獲取xml數據
$postXml = $GLOBALS[‘HTTP_RAW_POST_DATA‘];
// <xml>
// <ToUserName><![CDATA[toUser]]></ToUserName>
// <FromUserName><![CDATA[fromUser]]></FromUserName>
// <CreateTime>1348831860</CreateTime>
// <MsgType><![CDATA[text]]></MsgType>
// <Content><![CDATA[this is a test]]></Content>
// <MsgId>1234567890123456</MsgId>
// </xml>
//2.處理數據
//xml轉換成PHP對象
$postObj=simplexml_load_string($postXml);
if ($postObj->MsgType == ‘text‘) {
//文本類型的數據
if ($postObj->Content == ‘1‘) {
//回復
$content = $postObj->Content;
$timestamp = time();
$rMsg ="<xml>
<ToUserName><![CDATA[{$postObj->FromUserName}]]></ToUserName>
<FromUserName><![CDATA[{$postObj->ToUserName}]]></FromUserName>
<CreateTime>{$timestamp}</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[{$content}]]></Content>
</xml>";
echo $rMsg;
}
}
}
?>
微信開發配置文件