微信開發文檔筆記整理(一)

1.微信的服務器配置說明:(用戶發給公衆號的消息以及開發者須要的事件推送,將被微信轉發到該URL)驗證算法以下:
    微信服務器會對填寫的服務器頁面裏的URL附帶四個參數,服務器指定URL在獲取到了三個參數後,若確認這次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,成爲開發者成功,不然接入失敗。下面是示例驗證成功代碼:
    function checkSignature()
{
        $signature = $_GET ["signature"];
    $timestamp = $_GET ["timestamp"];
    $nonce = $_GET ["nonce"];    
    $tmpArr = array (
            'weiphp',
            $timestamp,
            $nonce
    );
    sort ( $tmpArr, SORT_STRING );
    $tmpStr = sha1 ( implode ( $tmpArr ) );    
    if ($tmpStr == $signature) {
        echo $_GET ["echostr"];
    }
}
PS:這是一種通信加密機制,大部分接口都有一套本身的加密機制(這裏是將token、timestamp、nonce三個參數進行字典序排序,而後 將三個參數字符串拼接成一個字符串進行sha1加密)驗證成功後,接入生效


2.業務邏輯原理:
  服務器被驗證成功後:此後用戶每次向公衆號發送消息、或者產生自定義菜單點擊事件時(用戶向公衆號發送消息時,公衆號方收到的消息發送者是一個OpenID,是使用用戶微信號加密後的結果,每一個用戶對每一個公衆號有一個惟一的OpenID),開發者填寫的服務器配置URL將獲得微信服務器推送過來的消息和事件(這意味着當公衆號不少的時候,用戶的每次操做都是會對服務器產生一次壓力的,會隨着用戶的增多對服務器形成巨大的壓力)。


3.token的獲取(將微信的appid和appsecret填入就能夠獲取到一個token,這個token本質是一種身份校驗,每一個公衆平臺在特定時間內惟一的身份識別標識碼,通常在獲取後,須要保存一份在服務器上,而後就能夠一直進行調用,頻繁刷新微信服務器會限制,同時可能形成衝突,token的有效時間是2個小時,因此須要封裝一個專門的獲取token的方法,檢測到調用失敗後,刷新token)
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
   通常token的刷新思路:當請求出現token錯誤碼40001的時候,自動去請求一份新的token進行儲存,不然讀取緩存裏面的token(緩存能夠用文件,也能夠用Redis之類的nosql)php

相關文章
相關標籤/搜索