天天看點

微信開放平台之第三方授權開發

由于最近業務需求客戶讓我們幫忙開發微信公号。于是登入了客戶的公号 發現在他的公号設定裡面已經寫滿了頁面授權這些東西,因為這個公号的聽說是找了很多開發公司幫他們開發,反正就是東一個西一個而且哪個都不能删。開發過的都知道頁面授權域名這個東西最多隻能填寫兩個(老版本的時候隻能寫一個。老馬的手下已經大發慈悲的更新了一下能寫兩個了)但這個東西非常重要,多的也不解釋了。dddd        

微信開放平台之第三方授權開發

這個需求到我手上的時候我也頭疼半天。也找了很資料和解決方案。有的讓我找他們開發過的公司讓他們配合我做一個類似跳轉的東西,讓他們代我們授權然後回調到我的伺服器上。我想想這個東西隻能解一時之需,總不能每次出現個功能 我就找那些人。我不煩别人還嫌煩。于是我又找了一些資料。就看到了微信的開放平台裡的第三方平台。

微信第三方平台 他的定義在我個人了解就是 我成為服務商幫我的客戶服務,不需要進入客戶的公号裡進行設定,然後我可以代他開發,一些回調位址,授權頁面域名都在我第三方平台裡設定,把主要的東西掌握在自己的手上,直接脫離那個煩人的公号設定,就是上面那張圖。現在世面上也有很多這些東西

微信開放平台之第三方授權開發

類似于上面這種讓公号授權給第三方一些權限,然後第三方帶代為開發,當然也能正常的擷取微信的各種權限(前提是對方已經授權給你了)

那就進入正題。

第一步:

首先我們當然就是先去注冊一個微信開放平台的賬号。

微信開放平台

注冊這些東西 你就按它的提示來吧。準好300大洋。認證費~~

微信開放平台之第三方授權開發

 弄好送出了認證 一般一周内就會有認證公司給你電話的。如果你能說會道口才好的話,電話那頭可能會成為你的另一半。程式員的交際圈也就這樣了。

微信開放平台之第三方授權開發

 當你有一個賬後 在管理中心->第三方平台->建立第三方平台進行按照他的提示就可以建立一個項目 

建立完後,記得回到  管理中心->第三方平台  你建立的項目 操作詳情裡面進行操作

微信開放平台之第三方授權開發

 前期就大概就這一送出稽核。  大概第二天就能知道是不是稽核通過了 。稽核不通過 會有提示為啥稽核不通過,大部分原因是因為平台官方網址打不開。

第二步:

也是在項目詳情裡面 , 開發資訊  這邊是先讓你選擇 你需要的公衆号或者小程式的的權限,點編輯按照你需要權限 初步設定一下。如果後期需要其他權限也是可以進行更改的。

微信開放平台之第三方授權開發
微信開放平台之第三方授權開發

 step 1:

我這邊就是設定了兩個。

微信開放平台之第三方授權開發

 step 2:

我一個個講吧,微信提示有會把我們弄懵

微信開放平台之第三方授權開發

 這個東西他會每隔10分鐘 會發一個請求到你伺服器上,是以這裡填寫你能接受到微信請求的位址。可以先用内網穿透測試ngrok 花生殼 這些(我是自己搭建了一個ngrok,有興趣的可以去翻一下我的ngrok搭建的文章),填好之後微信就會發送請求過來。(在稽核中它也會發的)下面是微信請求的示例圖

微信開放平台之第三方授權開發

請求過來的都是XML 加上一些參數。

appid :是你第三方的項目的appid

Enctypt 是需要ase進行解密  解密出來有個component_verify_ticket  有效期是12個小時。自己做好維護。提前半小時進行更新。

概述 | 微信開放文檔  加密解密的demo 在這個連結裡可以去下載下傳看一下。 我是用php的 微信的demo裡的解密是比較老的。php7以上就開始不支援了。這可以去李彥宏那邊搜一下 能搜到的  。

微信開放平台之第三方授權開發

 一些公号的事件 和 ticket 差不多也需要解密。這裡面可以玩出一些花樣 可以自行研究一下

微信開放平台之第三方授權開發

 消息校驗TOKEN  消息加解密KEY  這些自行按規則填寫

授權事件接收配置 、 消息與事件接收配置、授權發起頁域名 、公衆号開發域名 這幾項要域名一緻

這着重講一下  公衆号開發域名  這個東西。完全就是坑爹。他上面寫着選填,但是你不填這個位址微信狗日的到最後使用者進行通路的時候 就會出現redirect_uri 錯誤。這裡的 公衆号開發域名 就跟公号裡的 網頁授權域名  是同一個道理 你不填就不行,連通路都不通路不了,這裡給你個選填。

也可能是我粗心看見選填就不填了。回頭搞半天。

參數配置方面應該就講完了

現在講一下各種令牌 token 預授權碼的擷取

第一步:

這裡就是那個ticket 如果看到了這裡應該這步都是完成的。就是微信會主動推送加密的ticket 到你的 授權事件接收配置 的位址上 你要去解密

第二步:

擷取令牌:和上面擷取ticket差不多 令牌 | 微信開放文檔 這裡的這個文檔是沒坑的。照這裡做。accounToken 有效期是2個小時 ,提前半個小時進行更新,自己做好維護

第三步:

擷取預授權碼:和上面兩步差不多 預授權碼 | 微信開放文檔 這裡注意一下,打箭頭的這裡也要一起改 改成擷取的令牌就好了。就是post 和get 都要放令牌。自行維護。或者不需要維護,需要的時候就去請求拿一下。。

微信開放平台之第三方授權開發

 第四步 :

生成連結 連結會自動變換成二維碼,拿這個二維碼 去給公号的管理者進行掃碼授權

授權流程技術說明 | 微信開放文檔  可以參照這個文檔寫。

這裡注意的是  一定要在 授權發起頁域名 填寫的位址裡進行編寫代碼 而且一定要在頁面裡

微信開放平台之第三方授權開發

 寫個a标簽跳轉過去。不能直接生成好複制過去打開  微信是不會認這樣的操作 會報錯的

例子:

微信開放平台之第三方授權開發

 手動點選跳轉過去 會變成一個二維碼。然後讓需要授權的公号管理者進行掃碼授權

講到這裡 總結一下:

首先需要 接收微信推送過來的Ticket 在 授權事件接收配置 這裡的填寫的位址  進行解密 然後自行維護,有效期12個小時

第二 擷取令牌 主動去請求擷取 自行維護  有效期 2個小時

第三 擷取預授權碼  然後生成連結 在頁面中點開。

 代公号發起授權 

簡介 | 微信開放文檔  這裡就和平常的 開發公号的東西差不多了。就是有些需要按照第三方平台的規則來,大緻相同。

微信開放平台之第三方授權開發

 我的業務需求權限隻有一些 擷取賬号這些。其他權限 各位可以在仔細對照一下文檔。  這個東西我也研究了1天才弄出來。我是比較笨的人。相信各位都是聰明絕頂的比我厲害。這些是我的拙見,有什麼寫的不好的請包涵。