微信公眾平台開發教程 [付視頻]


   這幾年,微信非常流行,也是唯一可以和QQ抗衡的即時通,當然他們是一家子,微信除了有即時通的功能外,還有一些其他的功能,公眾號就是其中之一,微信創始人甚至揚言微信可以實現大部分APP的功能,鑒於這樣,最近兩年很多開發者都轉向了微信開發這一塊,甚至有些公司也專門做微信開發的,微信公眾號可以提供新聞推送,可以進行業務處理等等

   本人接觸微信開發也不多,只是公司有個項目用到了,但是在經過一次微信開發以后,感覺基本的使用也不難,下面是本人在開發中的一些總結,本人才疏學淺,不排除有講得不對或者漏了的地方,多多包涵,也望能指出,互相學習,互相進步...

   下面是部分筆記

注冊公眾平台賬號

個人只能注冊訂閱號https://mp.weixin.qq.com
訂閱號 服務號 企業號 三者能使用的功能不相同
注冊的賬號需要跟微信號綁定(微信號需要綁定銀行卡)
注冊地址:
https://mp.weixin.qq.com/cgi-bin/readtemplate?t=register/step1_tmpl&lang=zh_CN
注冊需要郵箱激活

登錄微信公眾平台

微信公眾平台登陸后,用戶可以直接使用微信公眾平台進行消息群發,添加微信公眾號菜單等

給公眾號添加測試賬號

作為開發人員,可以使用普通微信號來測試功能
登陸公眾平台后,在開發》開發者工具》里面可以掃描二維碼添加測試賬號
此過程需要掃描你微信幾次
掃描測試號二維碼可以給測試公眾號添加測試賬號
在功能》群發功能》添加文字群發,
看測試賬號是否收到
不過由於上面直接公眾平台群發功能是正式的功能,所以一天只能群發一條消息 測試號則比這個權限多

 

對微信進行接口開發

該功能允許我們調用微信的接口,進行第三方系統的對接,這樣我們在微信平台上面的很多操作,就不需要在微信平台上面操作了,我們可以直接在我們自己的系統上面進行微信公眾平台的一些操作,比如添加菜單,群發消息,獲取用戶,消息回復等等

 

微信|公眾平台開發者文檔

http://mp.weixin.qq.com/wiki/home/index.html
我們本課程就是基於微信提供的開發文檔
剛才注冊的公眾號如果未認證測擁有的權限是不i一樣的
http://mp.weixin.qq.com/wiki/13/8d4957b72037e3308a0ca1b21f25ae8d.html
具體可以查看上面的

開發之前的准備

在開發》基本配置哪里,如果首次進入,則需要同意協議
點擊成為開發者后,會為開發者生產appid和appsecret
這兩個是公眾號和微信服務器進行交互的賬號密碼




服務器配置

 

開發者需要先開啟服務器配置

填寫URL token 消息加密密鑰等
URL:開發者用來接收微信消息和事件的接口地址
Token:可以任意填寫,用作生成簽名k
該Token會和接口URL中包含的Token進行比對,從而驗證安全性
EncodingAESKey由開發者手動填寫或隨機生成,將用作消息體加解密密鑰
還可以選擇消息加解密方式:明文模式(默認)、兼容模式和安全模式
上面的配置會保存立即生效,需要謹慎操作
添加服務器配置的時候 需要先開啟,開啟需要補全資料,比如上傳頭像等

微信是服務器和服務器之間的交換,所以我們需要一台服務器
(虛擬空間,VPS都可以)
搭建一個web測試站,需要注冊一個域名(80端口的)
可以是子域名 比如
weixin.bamn.cn

 

配置域名 80端口

 我還需要為填寫的URL進行一些操作
如果你的接口是PHP的可以參考官網提供的
我們這里是ASP.NET:
http://weixin.bamn.cn/WeiXinTokenApi.aspx 如果是https則443端口
微信服務器那邊會往我們上面的地址 進行get操作,我們接口中可以拿到微信服務器傳過來的三個參數signature timestamp nonce

 

加密/校驗(和微信服務器校驗-握手)

1獲取微信服務器傳過來的四個參數
2 對這三個參數進行“字典序排序”
3 拼接三個字符串
4 對拼接的字符串進行sha1加密
4 成功驗證 原樣返回
具體可以查看WeiXinTokenApi.aspx.cs頁面的代碼

 protected void Page_Load(object sender, EventArgs e)
        {

            if (Request.RequestType.ToLower().Equals("post"))
            {
                //接收消息
                ResponseMsg();
            }
            else
            {
                //校驗接口
                CheckSignature();
            }
            Response.End();
        }

檢驗接口

 /// 
        /// 校驗方法
        /// 
        private void CheckSignature()
        {
            try
            {
                //1獲取微信服務器傳過來的四個參數
                string signature = Request.QueryString["signature"];
                string timestamp = Request.QueryString["timestamp"];
                string nonce = Request.QueryString["nonce"];
                string echostr = Request.QueryString["echostr"];//該字符串用來成功驗證后原樣返回

                string token = TOKEN;
                string[] tmpArr = new string[] { token, timestamp, nonce };//2 對這三個參數進行“字典序排序”
                Array.Sort(tmpArr);
                string tmpStr = string.Join("", tmpArr);//3 拼接三個字符串
                tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//4 sha1加密
                tmpStr = tmpStr.ToLower();
                if (tmpStr == signature)
                {
                    SetCacheDateTime("Item", tmpStr + ":" + signature + " " + echostr, 3600);
                    //4 成功驗證原樣返回
                    HttpContext.Current.Response.Write(echostr);
                }
                else {
                    SetCacheDateTime("Item", "驗證不通過", 3600);
                    Response.Write("驗證不通過");//隨便返回
                }
            }
            catch (Exception ex)
            {
                SetCacheDateTime("Item", ex.Message, 3600);
                Response.Write(ex.Message);//隨便返回
            }
        
列表
4-4節-公眾號發送消息包括文本 圖片 圖文 語音 視頻 等等
4-3節-點擊菜單跳轉鏈接時的事件推送
4-2節-處理自定義菜單事件返回歌曲名稱
4-1節-接收事件推送-BAMN.CN北盟網校
3-10節-補充說明微信接口如何獲取音頻 視頻 圖文等的內容
3-9節-接收微信號發過來的鏈接消息
3-8節-接收微信號的地理位置消息
3-7節-接收小視頻消息
3-6節-接收微信號的視頻消息
3-5節-接收微信號的語言消息-BAMN.CN北盟網校
3-4節-接收微信號發送的圖片消息-BAMN.CN北盟網校
3-3節-響應微信服務器,做一個【客服】自動回復的功能
3-2節-不要在try catch里面進行response.end
3-1節-接收普通微信號發送過來的消息
2-4節-查詢菜單(獲取菜單的json文本,通常用於同步菜單到網站系
2-3節-刪除微信菜單接口的使用
2-2節-反序列化JSON結果
2-1節-自定義菜單創建接口給公眾號添加菜單
1-6節-獲取微信服務器IP地址
1-5節-添加一個基類Page添加AppID和AppSecret
1-4節-Json反序列化和HttpGet封裝和上節課的補充
1-3節 獲取access token
1-2節-加密校驗(和微信服務器校驗-握手)
1-1節-開發前的一些准備注冊公眾號和准備域名虛擬空間等

 如看視頻 可以訪問 http://www.iqiyi.com/u/2086142358

未完待續 希望對你有幫助


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM