看這篇文章之前請務必先看第一篇:微信公眾號開發一:服務器資源配置)。
1,進入新浪sae里的代碼管理,點擊編輯代碼
編輯代碼
接下來是具體接入微信服務器:具體說明可以看官網API
2,驗證消息來自微信服務器。在atom里編輯一個PHP文件wechat.php(名字隨意),點擊黃色尖頭上傳至sae里;wechat.php文件里的代碼如下:
<?php
//創建一個字符串來存儲token值
$token = "bigBear";
//接收微信發過來的各種參數
$timestamp = $_GET["timestamp"];//時間戳
$nonce = $_GET["nonce"];
//定義一個數組
$array = array($token,$timestamp,$nonce);
//將數組按照字符串排序
sort($array,SORT_STRING);
//將數組合并成字符串
$str = implode($array);
//對字符串進行加密
$sign = sha1($str);
//得到傳過來的簽名
$signature = $_GET["signature"];
//判斷是否來自微信的請求
if ($sign == $signature) {
echo "$_GET['echostr']";
}
?>
Screen Shot 2016-09-30 at 3.45.11 PM.png
3,登陸微信公眾平臺->基本配置->修改配置
點擊基本配置
具體修改配置如圖上紅色說明
4,修改配置后,點擊提交,如果提示“token驗證失敗”,先多試幾次,微信服務器偶爾不穩定。進行這個操作之前保證你的新浪SAE實名認證成功!!!token驗證成功之后就可以調用微信的各種接口來實現你的業務邏輯了。
接下來就可以具體實現部分業務邏輯了:
在這里我需要用的三個文件(圖中紅色部分)
Screen Shot 2016-09-30 at 4.20.50 PM.png
1,request.php里的代碼主要封裝了兩個方法:httpGet()和httpPost()方法,根據后續發送請求的方式不同按需調用,具體代碼:
<?php
function httpGet($url)
{
//創建一個會話
$curl = curl_init();
//為會話設置參數
//參數1: 要給哪個會話設置參數
//參數2: 要從PHP文件中獲取URL地址
// 參數3: 請求哪個網址
curl_setopt($curl,CURLOPT_URL,$url);
// CURLOPT_RETURNTRANSFER將獲取到的信息以文件流的方式返回
// true是一個boolean值 是否返回頭信息
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
// 執行會話
$response = curl_exec($curl);
// 關閉會話
curl_close($curl);
//返回請求結果
return $response;
}
function httpPost($url,$data){
// /設置抓取的url
$curl = curl_init();
curl_setopt($curl,CURLOPT_POST,ture);
curl_setopt($curl,CURLOPT_URL,$url);
// CURLOPT_POSTFIELDS 傳遞一個作為HTTP “POST”操作的所有數據的字符串
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$res = curl_exec($curl);
return $res;
}
?>
2,wechat.php文件里主要是處理event類型事件的代碼;(代碼比較長,源碼附百度云鏈接)
3,testWechat.php文件里主要是獲取access_token、創建自定義菜單、個性化菜單上傳臨時文件等(代碼比較長,源碼附上面百度云鏈接)
說明:代碼注釋自己認為還差不多,所以這里對代碼沒有進行解讀,代碼中具體用到的微信接口請在官方文檔中查看,日后可能也會對具體細節再寫點文章吧,后續應該也會把大概邏輯和基本原理再寫一篇文章
如有疑問或者想法,歡迎留言交流,共同學習。