1. 程式人生 > >PHP微信公眾平臺開發-BAE-視訊+筆記+原始碼

PHP微信公眾平臺開發-BAE-視訊+筆記+原始碼

2018年8月24日,沉迷於學習微信公眾號開發。

本篇文章是傳智播客課程“PHP微信公眾平臺開發”前十二節課的課程筆記。課程的視訊連結http://yun.itheima.com/course/163.html ,視訊可免費下載,我覺得老師講得挺好的,採用的是百度雲BAE。同時,推薦方倍工作室的部落格園(微信公眾平臺開發入門教程),採用新浪雲SAE。

本筆記目錄

⑦再次測試

....其它介面大同小異

一,微信公眾平臺

1,什麼是微信公眾平臺

微信公眾平臺是騰訊為了讓使用者申請和管理微信公眾賬號而推出的一個網路平臺,而微信公眾賬號的操作管理在這個平臺下進行所有使用者都在騰訊提供的統一微信公眾平臺下進行相關操作:

平臺地址:https://mp.weixin.qq.com/

2,微信與微信公眾平臺區別

微信是基於點對點關係

微信公眾平臺是基於一對多關係

3,微信公眾平臺開發

開發者模式

訂閱號:個人版使用者,每天可以群發一條訊息

服務號:企業版使用者,每月可以群發四條訊息

2)線上虛擬主機或伺服器(SAE雲引擎,BAE雲引擎,阿里雲伺服器)

3)TortoiseSVN的(SVN客戶端軟體)

4,開發者模式原理圖

解釋一下這個開發者模式原理圖:我們在微信手機端傳送的訊息,是被送入騰訊的web伺服器,由騰訊的web伺服器將訊息轉發到我們的自定義伺服器中。自定義伺服器中的程式碼就是我們寫的PHP原始碼,它處理接收的訊息,並做出相應迴應,該回應不會直接到達微信手機端,仍舊是以騰訊的web伺服器為中介,進行處理轉發才能到手機端。自定義伺服器可以選擇百度雲BAE,新浪雲SAE或者阿里雲。本教程使用的是百度雲BAE,若參考方倍工作室教程,可選擇新浪雲SAE。TortoiseSVN是一個程式碼版本庫,用於將本地的程式碼上傳或者提交更新到自定義伺服器中。

二,自定義伺服器(BAE)

1,登陸百度雲平臺

2,登陸BAE雲引擎

3,單擊新增部署按鈕

如圖4所示,設定相關引數

單擊確認即可。

單擊域名,如出現如下圖所示介面,代表建立成功

5,管理BAE雲平臺

在本地的Apache工作目錄建立微信資料夾,然後使用SVN軟體進行連線操作,然後輸入使用者名稱與密碼(百度的賬號與密碼)即可下載服務端資料到本地。

如圖6所示,可以修改的index.php檔案

修改的index.php然後通過SVN軟體提交到BAE雲引擎,但是瀏覽器發現系統依然沒有改變

原因:因為預設情況下,百度雲引擎需要手工釋出

如果不想每次都手工釋出原始碼,可以單擊微信進入配置目錄,進行釋出設定

釋出成功後,再次瀏覽器,效果如下:

三,微信官方介面

1,對接微信公眾平臺

①獲取微信API介面

②下載API介面檔案

解壓後如下圖所示:

以上檔案就是我們的API檔案

③複製wx_sample.php檔案到專案相關目錄中,並更名為api.php,設定TOKEN金鑰檔案

通過SVN軟體上傳api.php檔案到BAE。

④開啟微信公眾平臺開發者中心,填寫以下資訊:

確認無誤後,單擊提交按鈕,效果如下圖所示:

如果第一次提交失敗,可以再次提交。

⑤通過微信手機端進行測試

第一次測試時,系統沒有任何返回,因為api.php介面檔案主要負責驗證操作,並沒有返回任何資訊。

⑥開啟自動回覆功能

再次提交資料到BAE雲引擎中。

⑦再次測試

如果出現以上提示代表接入成功!

四,微信官方介面詳細分析

如圖1所示,驗證功能有效()

2,自定義回覆功能responseMsg()

詳細分析請參考api.php檔案

五,微信的6大接收介面

1.文字訊息介面

說明:如果使用者傳送過來的XML資料中,MSGTYPE節點為“文字”,就代表使用者傳送的是文字訊息。

介面開發步驟:

①在接收時,接收MsgType節點

②在接收訊息時對$ msgType進行相關判斷

修改完成後,上傳原始碼到BAE引擎中

測試效果:

2,圖片訊息介面

編寫程式碼如下:

測試結果:

六,微信文本回復介面

如圖1所示,文本回復介面XML模板

2,文本回復開發步驟

①組裝XML資料

②設定相關引數

③格式化字串(重要)

string sprintf(string $format[,mixed $args [,mixed $... ]])

功能:返回格式化後的字串

引數說明:

$ format:要格式的話的模板資訊

$ args:要格式化的變數

%s:把變數格式化為字串

④返回格式化後的XML資料到微信客戶端(使用者端)

⑤微信公眾平臺如何判斷使用者傳送的關鍵詞

修改完成後,通過SVN軟體上傳原始碼到BAE雲引擎中,測試結果:

七,簡易號碼簿

1,專案需求

當用戶在微信公眾平臺中輸入問號時,自動彈出如下資訊

【1】特種服務號碼

【2】通訊服務號碼

【3】銀行服務號碼

您可以通過輸入【】方括號的編號獲取內容哦!

回覆1

常用特種服務號碼:

匪警:110

火警:119

回覆2

常用通訊服務號碼:

中移動:10086

中電信:10000

回覆3

常用銀行服務號碼:

工商銀行:95588

建設銀行:95533

2.開發步驟

修改完成後,提交到百度BAE,測試效果:

八,音樂回覆介面

1,音樂回覆介面中的XML模板

2,音樂回覆介面開發步驟

①組裝XML模板

②設定回覆關鍵詞

編寫完成後,通過SVN上傳到BAE中,測試結果如下:

九,微信的圖文回覆介面

1,微信的圖文介面XML模板

2,圖文訊息介面開發

①組裝XML文件

②設定相關引數

③格式化字串

修改完成後,通過SVN軟體提交原始碼到BAE雲引擎中,測試結果如下:

十,LBS開發

1,什麼是LBS

基於位置的服務:基於地理位置的服務

2,接收地理位置資訊

3,LBS開發步驟:

①判斷$ msgType型別為“location”型別的資料

②幾個關鍵詞

$經度經度

$ latitude緯度

③通過以上兩個變數接收使用者傳遞的經緯度資訊

④通過文字訊息返回使用者的經緯度資訊

⑤上傳程式碼到BAE,測試結果:

十一,微信LBS案例

1,專案需求

根據使用者上傳的地理位置,顯示客戶所在詳細地理位置。

說明:在LBS介面中,我們可以獲取使用者的經緯度資訊,那麼在開發過程中如果通過LBS介面獲取使用者的詳細資訊呢?

2,百度LBS介面

進入介面說明:

反地理編碼介面:把經緯度轉化為詳細的地址資訊

說明:我們單擊介面示例程式碼,發現可以直接獲取到相關資料,代表當前介面使用的是的Http中的GET請求,在實際專案開發中,可以通過的file_get_contents函式來模擬GET請求

3,呼叫車聯網LBS案例

4,在微信介面中呼叫車聯網API

5,上傳原始碼到BAE中,測試結果:

十二,微信的機器人開發

1,為什麼需要微信機器人

當用戶輸入的關鍵詞與我們設定關鍵詞不匹配時,系統不會返回任何,這樣使用者體驗不是很好,那麼如何解決這種問題?

答:可以通過微信聊天機器人對接使用者訊息

2,圖靈機器人

3,通過微信對接圖靈機器人

介面說明:

詳細程式碼:

上傳原始碼到BAE,測試結果: