由于最近業務需求客戶讓我們幫忙開發微信公号。于是登入了客戶的公号 發現在他的公号設定裡面已經寫滿了頁面授權這些東西,因為這個公号的聽說是找了很多開發公司幫他們開發,反正就是東一個西一個而且哪個都不能删。開發過的都知道頁面授權域名這個東西最多隻能填寫兩個(老版本的時候隻能寫一個。老馬的手下已經大發慈悲的更新了一下能寫兩個了)但這個東西非常重要,多的也不解釋了。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天才弄出來。我是比較笨的人。相信各位都是聰明絕頂的比我厲害。這些是我的拙見,有什麼寫的不好的請包涵。