綁定微信以及獲取openId

 因爲公司最近在作一個微信公衆號的項目,須要獲取用戶openId,我再一次踏入了微信的坑!
html

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

  咱們公司是屬於已認證的服務號的那種公衆平臺,前戲基本上該作的已經作了。安全

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

  

   這裏的業務域名、JS接口安全域名和網頁受權域名都是同一個,也就是公司官網認證的域名。而後咱們寫的html文件必需要在這個域名對應ip地址的文件夾下,二級或者三級均可以。app

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

   

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

    在拿到AppID和AppSecret也就是開發者密碼後,就能夠調用微信受權接口了。3d

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

    要獲取用戶openId首先要讓用戶贊成受權,獲取code;htm

    受權大概就是這個樣子:

    因爲咱們這邊管事的不但願用戶看到受權頁面,說什麼影響用戶享受什麼的,什麼鬼,受權頁面很正常好很差,我反而以爲沒有受權頁面就拿到信息那纔是感受怪怪的~~.(稍微吐槽吐槽~~)

      獲取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~~~)

相關文章
相關標籤/搜索