時間蔥蔥,小寶鴿入職也有半年了,剛入的時候剛好有負責開發一個微信企業號的新項目。從項目的一無所有到第一版上線,再一步步完善升級。期間學到了許多東西。對微信開發也是有了一定的認識。在此,小寶鴿再次無私地分享給大家啦。
其實微信開發跟web開發沒有多大的區別,只是經過了微信,然后再由瀏覽器打開。因為經過微信,因此你的web會附加一些微信平臺所提供的一些功能,如獲取用戶地理位置、獲取微信用戶頭像、拍照上傳、發送微信消息等等,通過微信接口即可調用。要將web項目掛靠在微信公眾平臺上是需要一個帳號的。微信公眾平號分為服務號、訂閱號、企業號。這三種帳號有一些小區別,但是開發流程都是差不多的,只是開放的功能上有些區別,知道其中一種開發,其他的也差不多。關于具體區別先不作過多介紹,后面的文章會講到。接下來我們以企業號為例帶大家進入微信開發之旅。
接下來將從下面幾個角度帶大家了解微信開發:
**(1)申請企業號體驗號**
**(2)企業號的一些配置**
**(3)微信JS接口調用**
好了現在馬上開始:
### 一、申請企業號體驗號
**1.1、首先來到微信企業號的網址 [https://qy.weixin.qq.com/](https://qy.weixin.qq.com/)**

**1.2、可以看到“開發者中心”字眼,點擊進入相應頁面**

**1.3、進入后可以看到“歡迎你,開發者”的公告,右側有個“申請體驗號”,點擊進入相應頁面。**

**1.4、進入“申請體驗號”后,可以看到注冊流程,按照注冊流程填寫相應資料并申請,驗證郵箱綁定微信號后體驗號就申請成功啦。**

**1.5、申請成功之后,回到[https://qy.weixin.qq.com/](https://qy.weixin.qq.com/),用微信掃一掃掃描登錄下方的二維碼,輸入對應密碼即可登錄成功,來到你的微信企業號首頁啦。**

### 二、企業號的一些配置
**2.1、添加子部門,如下圖,將鼠標放到“企業號體驗43560625”就會出現小下標,然后點擊添加子部門,填寫好信息保存,然后刷新頁面即可。**


**2.2、添加成員,點擊通訊錄,然后如下圖進行操作,即可添加成員。部門選擇剛剛添加的部門**

**2.3、然成員關注該企業號,如果添加成員的時候有輸入郵箱,可以在通訊錄的成員管理那里給成員發送關注邀請,邀請會將企業號二維碼發送到對應成員郵箱。另外一種方法直接點擊“設置”即可看到體驗號二維碼。讓成員掃這個二維碼關注也是可以的(需要注意的是,體驗號只能最多關注10個成員哦)。另外下圖中的CorpID (wx7099477f2de8aded)非常重要的,先記錄起來,下面接口微信JS調用的時候會用到。**

**2.4、添加管理組,點擊“設置”–>”權限管理”,就會跳轉到下圖頁面,然后“新建管理組”,選擇管理員的時候,如果提示該成員已在其他管理組,那么估計需要添加成員了。小寶鴿添加了一個管理組“測試”,添加成功后如下圖。其中Secret也是非常重要的東西,之后JS接口調用獲取簽名需要用到。**

**2.5、應用管理。猿友們可以看到左側菜單中有個”應用中心”。點擊應用中心將來到下圖頁面。”企業小助手”就是本企業號默認存在的一個應用。猿友們可以自行創建更多的應用。**

**點擊”企業小助手”將會來到下面的界面,默認是回調模式,我們需要設置成普通模式。**

**點擊”普通模式”,啟用模式,然后啟用”自定義菜單”。**

**自定義菜單啟用完成之后,點擊自定義菜單中的設置,將會跳轉到如下頁面:**

**添加菜單”測試”,然后設置”微信信息”,內容為”測試啦啦啦”,保存–>發布,然后右邊有個預覽,點擊菜單”測試”,就會自動回復消息,如下圖:**

**菜單響應除了發送微信消息也可以是跳轉到某個鏈接,因為跳轉鏈接是需要配置可信域名的,因此先介紹如何配置可信域名**
**應用管理還有一個地方需要設置的,那就可信域名,如下圖,回到”企業小助手”應用的詳情頁面,添加可信域名,可信域名是有一些要求的(1. 設置的應用域名須通過ICP備案的驗證,2. 請使用二級或二級以上域名),這里小寶鴿網上找了一個”yo.bbdfun.com”,猿友們也可以使用這個**

**配置了可信域名之后呢,猿友們可以配置跳轉到鏈接的菜單啦,注意配置的url必須是已可信域名作為域名哈,例如:**

### 三、微信JS接口調用
**3.1、微信提供了一系列的JS接口,使得公眾號企開發十分快捷高效,微信JS-SDK接口:**
**[http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E5%8F%A3](http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E5%8F%A3)**
**各位猿友們可粗略看一下上面文檔,便可知道大概提供的一些功能。**
**3.2、各位猿友們粗略看完”微信JS-SDK接口”,應該有看到下圖的說明吧,接口的使用是需要注入權限驗證配置的,現在我們上面的體驗號等等的一系列操作就派上用場啦。**

**3.3、接下來將會一點點向大家介紹怎么調用微信接口啦**
微信接口文檔之后的猿友們應該都知道微信接口的調用步驟如下:

最重要的還是步驟二:權限驗證配置。里面有幾個參數,小寶鴿將會為猿友們一一介紹:
debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來
appId: ”, // 必填,企業號的唯一標識,此處填寫企業號corpid
timestamp: , // 必填,生成簽名的時間戳
nonceStr: ”, // 必填,生成簽名的隨機串
signature: ”,// 必填,簽名,見附錄1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
debug、appId和jsApiList相信各位猿友們應該都知道大概是什么東西。那么現在給各位猿友們重點介紹:timestamp、nonceStr、signature。
其實timestamp、nonceStr是用來生成signature的。
js生成時間戳方法:timestamp = Date.parse(new Date()); //1414587457
另外,nonceStr也是一串隨機串,我們也用時間戳就好了nonceStr=Date.parse(new Date()); //1414587457
剩下的就是最關鍵的signature生成方法,這里需要引入access_token概念
生成signature簽名第一步獲得access_token:
瀏覽器輸入:[https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx5f24fa0db1819ea2&corpsecret=uQtWzF0bQtl2KRHX0amekjpq8L0aO96LSpSNfctOBLRbuYPO4DUBhMn0_v2jHS-9](https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx5f24fa0db1819ea2&corpsecret=uQtWzF0bQtl2KRHX0amekjpq8L0aO96LSpSNfctOBLRbuYPO4DUBhMn0_v2jHS-9)
即可得到access_token:YoxXjnJS57r8gk5Nf-Ki_mSvn98fILxv56EE7NFWE3qQNOH3OaW4iDWwLc05g1mdbuNhipK8fgy-q-pA93DqFw(其有效期為7200秒,即兩個小時)

生成signature簽名第二步通過access_token獲得ticket:
瀏覽器輸入:[https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=YoxXjnJS57r8gk5Nf-Ki_mSvn98fILxv56EE7NFWE3qQNOH3OaW4iDWwLc05g1mdbuNhipK8fgy-q-pA93DqFw](https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=YoxXjnJS57r8gk5Nf-Ki_mSvn98fILxv56EE7NFWE3qQNOH3OaW4iDWwLc05g1mdbuNhipK8fgy-q-pA93DqFw)
即可得到ticket:”sM4AOVdWfPE4DxkXGEs8VLMMSNOZxIv5IhnWCyv5sA4UgJuWuMQdfMCeyC5kSL_c7OIMGeETC2y9PXfLbFIFNw(其有效期也是7200秒,即兩個小時)

生成signature簽名第三步通過ticket以及下面參數拼成字符串:
noncestr=1414587457
jsapi_ticket(即上面的ticket)=sM4AOVdWfPE4DxkXGEs8VLMMSNOZxIv5IhnWCyv5sA5kumyWTQ2VcKEcphBAW62J_HUgmaiKEQ3qhwj5Vlqq7g
timestamp=1414587457
url=[http://mp.weixin.qq.com](http://mp.weixin.qq.com)
通過上面的參數拼成(注意參數順序必須一樣):jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VLMMSNOZxIv5IhnWCyv5sA5kumyW
TQ2VcKEcphBAW62J_HUgmaiKEQ3qhwj5Vlqq7g
&noncestr=1414587457×tamp=1414587457&url=[http://mp.weixin.qq.com](http://mp.weixin.qq.com)
最后利用上面的字符串進行sha1加密,有在線的校驗工具[http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign](http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign)。但是真正開發的時候肯定是需要寫代碼的,下面附上sha1加密的java算法:`
jdk也有提供這個java.security這個包,里面封裝好了sha1加密算法。使用方法可參考博主的另外一篇博客[AES加密解密 SHA1、SHA加密 MD5加密 ](http://blog.csdn.net/u013142781/article/details/50337467)
**注意真正獲取access_token、ticket的時候是需要通過代碼實現的,上面在瀏覽器輸入對應地址獲取只是為了理順流程。下面是通過java代碼獲取。**
**3.4、java代碼獲取簽名**
關于使用java代碼獲取簽名的詳細過程請參考博主的另外一篇文章[ 微信開發之使用java獲取簽名signature(貼源碼,附工程)](http://blog.csdn.net/u013142781/article/details/50429704)
該文章有詳細的代碼,而且附工程下載。
獲取到了簽名之后就可以調用微信js接口了,例子后面的文章將會講到。