綁定微信以及獲取openId


 由於公司最近在做一個微信公眾號的項目,需要獲取用戶openId,我再一次踏入了微信的坑!

 先在這里告誡后來的同志,如果一樣要開始做有關微信的東西,最好是有前輩,或者直接看完文檔,不懂或者納悶的地方直接找微信客服!千萬不要直接去懟微信的代碼,簡直了...

  我們公司是屬於已認證的服務號的那種公眾平台,前戲基本上該做的已經做了。

  先說一說該注意的幾個點,以及很容易忽視的地方。

  

   這里的業務域名、JS接口安全域名和網頁授權域名都是同一個,也就是公司官網認證的域名。然后我們寫的html文件必須要在這個域名對應ip地址的文件夾下,二級或者三級都可以。

   還有需要注意一下的就是基本配置的IP白名單這塊!

   

     剛開始研究了幾天文檔,興致滿滿的寫代碼,幾個各種報錯,各種不對勁,甚至調用微信官方接口都各種調不起。找了幾番度娘才發現原來的IP白名單的原因。還有一個坑,我們下次講,這次暫時先說說openId的獲取方式。

    在拿到AppID和AppSecret也就是開發者密碼后,就可以調用微信授權接口了。

    文檔目錄:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

    要獲取用戶openId首先要讓用戶同意授權,獲取code;

    授權大概就是這個樣子:

    由於我們這邊管事的不希望用戶看到授權頁面,說什么影響用戶享受什么的,什么鬼,授權頁面很正常好不好,我反而覺得沒有授權頁面就拿到信息那才是感覺怪怪的~~.(稍微吐槽吐槽~~)

      獲取code的方法,微信文檔的接口這些寫的還算清楚,但是其中的坑就真心的是讓人無奈啊!

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

    按照這個接口的格式把每個參數拼接,然后訪問,我起先以為是Ajax訪問,結果......一臉懵逼啊~~

    結果這里是直接訪問就OK,參數里面有個redirect_uri,授權后重定向的回調鏈接地址,這里的參數直接寫授權后跳轉的頁面就OK,要注意的是這里的url必須是網頁授權域名里的!

    然后就是授權頁面的展示。這里我們管事的要求的是直接不要授權頁面,也就是所謂的靜默跳轉,直接到主頁面!

    這里就需要把微信參數中scope的值變成snsapi_base !但是應用授權作用域,snsapi_base (只能獲取用戶openid)!

    

    然后最終的樣子就是這樣子:

    然后在主頁面獲取url里的code參數,這個都會,就不多說了,獲取后再調用微信鏈接獲取access_token!

    這里就有一個隱形的坑了,而且是大坑!

    

    按理說,code也拿到了,按微信參數一個個填,應該就可以獲取到里面的openId的,但是這里的鏈接是不能前台獲取的,只有讓后台寫接口,我們這邊動態傳入數據給后台,來獲取,然后呢,code這個數據是只能調用一次的,所以,你懂的~~~應該是為了保護公眾號信息被盜取,所以在前台輸入微信接口是調取不到的,所以這也是沒辦法的事情,可是微信好歹提示下啊,啥也不說,哎~~

    拿到openId后,用openId拿到對應微信公眾號的關注者信息這些是后台做的事情,你叫他給你個接口,然后你把openId輸入進去,和某些需要的參數就可以直接拿到了,(反正我這邊只需要一個openId~~~)

 


免責聲明!

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



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