首頁 >微信小程式 >微信開發 >三步驟教你接取微信公眾平台開發

三步驟教你接取微信公眾平台開發

Y2J
Y2J原創
2017-05-16 10:45:392165瀏覽

第一步:填寫伺服器設定

登入微信公眾平台官網後,在公眾平台後台管理頁面- 開發者中心頁,點選「修改設定」按鈕,填寫伺服器位址(URL)、Token和EncodingAESKey,其中URL是開發者用來接收微信訊息和事件介面URL。 Token可由開發者可任意填寫,用作生成簽章(此Token會和介面URL中所包含的Token進行比對,從而驗證安全性性)。 EncodingAESKey由開發者手動填寫或隨機生成,將用作訊息體加解密金鑰。

同時,開發者可選擇訊息加上解密方式:明文模式、相容模式和安全模式。模式的選擇與伺服器配置在提交後都會立即生效,請開發者謹慎填寫及選擇。加解密方式的預設狀態為明文模式,選擇相容模式與安全模式需要事先設定相關加解密程式碼,詳情請參考訊息本體簽章及加解密部分的文件。

三步驟教你接取微信公眾平台開發

第二步:驗證伺服器位址的有效性

開發者提交資訊後,微信伺服器將發送GET請求到填寫的伺服器位址URL上,GET請求攜帶四個參數:

三步驟教你接取微信公眾平台開發

#開發者透過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此GET請求來自微信伺服器,請原樣回傳echostr參數內容,則存取生效,成為開發者成功,否則存取失敗。

加密/校驗流程如下:

1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

檢驗signature的PHP範例程式碼:

private function checkSignature()
{
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}

PHP範例程式碼下載:下載

第三步:依據介面文件實現業務邏輯

驗證URL有效性成功後即存取生效,成為開發者。如果公眾號類型為服務號碼(訂閱號碼只能使用一般訊息介面),則可在公眾平台網站中申請認證,認證成功的服務號碼將獲得眾多介面權限,以滿足開發者需求。

此後用戶每次向公眾號發送訊息、或產生自訂選單點擊事件時,開發者填寫的伺服器設定URL將得到微信伺服器推送過來的訊息和事件,然後開發者可以依據自身業務邏輯回應,例如回覆訊息等。

公眾號呼叫各介面時,一般會得到正確的結果,具體結果可見對應介面的說明。傳回錯誤時,可根據回傳碼來查詢錯誤原因。全域回傳碼說明

使用者傳送訊息給公眾號時,公眾號收到的訊息傳送者是一個OpenID,是使用使用者微訊號加密後的結果,每個使用者對每個公眾號有一個唯一的OpenID。

此外,由於開發者經常有需在多個平台(行動應用程式、網站、公眾帳號)之間共通使用者帳號,統一帳號體系的需求,微信開放平台(open.weixin.qq.com)提供了UnionID機制。開發者可透過OpenID來取得使用者基本訊息,而如果開發者擁有多個應用程式(行動應用程式、網站應用程式和公眾帳號,公眾帳號只有在被綁定到微信開放平台帳號下後,才會取得UnionID),可透過取得使用者基本資訊中的UnionID來區分使用者的唯一性,因為只要是同一個微信開放平台帳號下的行動應用程式、網站應用程式和公眾帳號,使用者的UnionID是唯一的。換句話說,同一用戶,對同一個微信開放平台帳號下的不同應用,UnionID是相同的。詳情請在微信開放平台的資源中心-行動應用開發-微信登入-授權關係介面呼叫指引-取得使用者個人資訊(UnionID機制)中查看。

另請注意,微信公眾號介面只支援80介面。

【相關推薦】

1. 特別推薦「php程式設計師工具箱」V0.1版本下載

2. 微信公眾號平台原始碼下載

#3. 阿狸子訂單系統原始碼下載

以上是三步驟教你接取微信公眾平台開發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:概述微信開發下一篇:概述微信開發