tft每日頭條

 > 生活

 > 微信公衆号開發的流程

微信公衆号開發的流程

生活 更新时间:2024-11-16 05:17:59

微信公衆号開發的流程?一、 公衆号AccessToken1 access_token是使用公衆号的 AppID 和AppSecret,通過後台調用接口獲取的,現在小編就來說說關于微信公衆号開發的流程?下面内容希望能幫助到你,我們來一起看看吧!

微信公衆号開發的流程(微信公衆号開發和微信網頁開發的區别和要點)1

微信公衆号開發的流程

一、 公衆号AccessToken

1 access_token是使用公衆号的 AppID 和AppSecret,通過後台調用接口獲取的。

2 前提條件:獲取時access_token時運行的服務器ip地址需要添加到公衆号的IP白名單上。

3 access_token具有有效時間通過expires_in獲得,有效時間到達前要注意刷新。

4 access_token對于公衆号是全局唯一的,一旦刷新,舊的就不能用了。所以要注意的是,如果你有多個應用,或者一個應用裡多個模塊的代碼都使用同一個公衆号access_token時,不能各自為政,比如每個調用的地方 都有access_token的實例,并且在它get方法裡,判斷是否過期過期則自動刷新,這樣就會導緻互相覆蓋。應該建立一個全局唯一的運行代碼來獲取access_token,能自動更新并對外提供。

二、網頁授權access_token

1 網頁授權的需求場景是用戶在微信客戶端中訪問第三方網頁,公衆号可以通過微信網頁授權機制,來獲取用戶基本信息,進而實現業務邏輯。

2 前提條件:公衆平台官網中的“開發 - 接口權限 - 網頁服務 - 網頁帳号 - 網頁授權獲取用戶基本信息”的配置選項中,填寫授權回調域名,即網頁的域名。

3 網頁跳轉到微信的授權頁面,用戶點擊同意授權後 跳回開發者指定網頁,用頁面參數中的code傳給服務端,服務端用code調用有關接口就可以獲得網頁授權access_token。從這裡可以看出網頁授權access_token和公衆号基礎支持的access_token有很大不同。

1)公衆号access_token是全局唯一的,網頁授權access_token是當前用戶訪問網頁時産生的,僅對當前該用戶有效。

2)公衆号access_token可以通過後台直接調用微信接口獲取,網頁授權access_token則必須用戶在授權頁面同意授權後才能獲取code,然後後台才能通過code得到網頁授權access_token。

三、 公衆号的參數簽名和微信網頁的參數簽名

這個其實是我想重點吐槽的。因為這兩者似是而非,表面很像,一般而言我們也覺得應該一樣,因為沒有必要搞得不一樣啊,徒增了開發成本,但實際卻又确實不一樣,所以我猜測是不是微信的開發人員内部之間沒有協調好導緻的。我們來分析一下:

1 公衆号的:

1) 将token、timestamp、nonce三個參數進行字典序排序

2)将三個參數字符串拼接成一個字符串進行sha1加密

2 微信網頁的:

1)對所有待簽名參數按照字段名的ASCII 碼從小到大排序(字典序)後,使用 URL 鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串

2) 對字符串進行sha1簽名,得到signature

對于第二步,都是對拼接好的字符串進行sha1加密,一樣的,就不用多說了。關鍵是這第一步。公衆号的第一步,是将參加簽名的參數的值(注意是值)按ASCII 碼從小到大進行排序然後拼接在一起,而網頁簽名,則是按參數名稱(注意是參數名稱)ASCII 碼從小到大進行排序,然後用 參數名=參數值&參數名=參數值...這樣的方式拼接起來。

3 其實還有個細緻的地方,公衆号的參數裡的随機數 參數名是nonce,而微信網頁的參數裡随機數參數名是 nonceStr,時間戳呢,大家都叫timestamp。很多時候我們在做微信網頁的簽名時,以為和公衆号的一樣,就把代碼搬過來,結果悲劇了,有時搞半天都不知道問題在哪。

由于篇幅所限,本文隻談及一些要點,詳細内容可參考官方開發文檔,接入概述 | 微信開放文檔 。希望這篇文章,對剛接觸微信開發的,或者像我這種不是一直在從事微信開發,偶爾做一次記性又不好的開發人員,有一點借鑒作用。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved