H5在微信中獲取openid

為什么要獲取openid

????openId是用戶在當(dāng)前公眾號(hào)下的唯一標(biāo)識(shí)(‘身份證’)耻讽。在微信中進(jìn)行微信分享、支付等操作時(shí)需要用戶的openid肩豁。H5要在微信中獲取到用戶openid箩艺,需要獲得微信授權(quán)眯分,授權(quán)分兩種方式:靜默授權(quán)和手動(dòng)授權(quán)

靜默授權(quán):用戶使用過(guò)程中不知不覺(jué)獲取到openid误甚,不需要用戶手動(dòng)授權(quán)缚甩,但是會(huì)在原頁(yè)面進(jìn)行刷新

手動(dòng)授權(quán):需要用戶點(diǎn)擊同意授權(quán),能獲取到更多用戶信息

????(我本次使用的是靜默授權(quán)窑邦,所以詳細(xì)記錄一下靜默授權(quán)的方式)

獲取方法

1擅威、首先,要有一個(gè)公眾號(hào)冈钦,以及公眾號(hào)的appid郊丛,然后在公眾號(hào)后臺(tái)上設(shè)置你的網(wǎng)頁(yè)授權(quán)域名(注意不加http://和https://)

2、靜默授權(quán)瞧筛,在進(jìn)入網(wǎng)頁(yè)之后厉熟,訪問(wèn)微信提供的url,在其中設(shè)置授權(quán)方式以及回調(diào)頁(yè)面url驾窟,返回的頁(yè)面url中就會(huì)包含一個(gè)code參數(shù)

(注意:此處的url是轉(zhuǎn)碼過(guò)后的url)

url轉(zhuǎn)碼方法:

var url = this.urlencode(url_old);

// 編碼函數(shù)

? ? urlencode (str) {?

? ? ? str = (str + '').toString();?

? ? ? return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').?

? ? ? replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');?

? ? },

具體獲取code方法:

// 獲取code

? ? getBaseInfos(){

? ? ? var url_code = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+你的appid+"&redirect_uri="+當(dāng)前頁(yè)面url+"&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect";

? ? ? window.location.href = url_code;//打開(kāi)這個(gè)鏈接庆猫,你的url后面就會(huì)跟上code的參數(shù)

? ? }

如果配置參數(shù)全部正確认轨,那么此時(shí)通過(guò)回調(diào)地址刷新頁(yè)面后绅络,你就會(huì)看到在地址欄中的code了。

注意:要監(jiān)測(cè)當(dāng)前url中是否含有code參數(shù),如果包含的話就繼續(xù)下一步操作恩急,否則頁(yè)面是一直重復(fù)刷新反復(fù)獲取code杉畜。且要注意code碼只能使用一次,使用過(guò)后就失效了衷恭。

3此叠、拿到code之后,需要把code傳給后端随珠,后端去請(qǐng)求微信獲取openid等參數(shù)灭袁,前端是獲取不到的,微信開(kāi)發(fā)文檔中是這么寫(xiě)的:

微信開(kāi)發(fā)文檔

后端請(qǐng)求成功后窗看,得到的數(shù)據(jù)應(yīng)該是這樣的

4茸歧、這樣我們就能獲取到用戶的openid進(jìn)行開(kāi)發(fā)了

開(kāi)發(fā)建議:

判斷是否微信內(nèi)置瀏覽器,如果是微信內(nèi)置瀏覽器的話显沈,去獲取用戶的openid软瞎,否則在外面瀏覽器中打開(kāi)獲取不到code是會(huì)報(bào)錯(cuò)的。

1拉讯、判斷是否是微信瀏覽器

isWeiXin() {

? ? ? ? var ua = window.navigator.userAgent.toLowerCase();

? ? ? ? if (ua.match(/MicroMessenger/i) == 'micromessenger') {

? ? ? ? ? ? return true;

? ? ? ? } else {

? ? ? ? ? ? return false;

? ? ? ? }

}

2涤浇、根據(jù)以上函數(shù)判斷值進(jìn)行不同的操作

if(this.isWeiXin()){

? ? ? ? console.log(" 是來(lái)自微信內(nèi)置瀏覽器")

? ? ? ? if(url_s.indexOf("code") > 0 ){// 如果url字符串包含code字段

? ? ? ? ? this.code = cs.code;//則獲取code參數(shù)值并存入緩存

? ? ? ? ? localStorage.setItem("code", cs.token);

? ? ? ? ? ? this.getOpenId();//繼續(xù)下一步獲取openid

? ? ? ? }else{//否則,就先調(diào)取函數(shù)獲取code

? ? ? ? ? this.getBaseInfos();

? ? ? ? }

? ? }else{

? ? ? ? console.log("不是來(lái)自微信內(nèi)置瀏覽器")

? ? }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末魔慷,一起剝皮案震驚了整個(gè)濱河市只锭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌院尔,老刑警劉巖纹烹,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異召边,居然都是意外死亡铺呵,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門隧熙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)片挂,“玉大人,你說(shuō)我怎么就攤上這事贞盯∫裟睿” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵躏敢,是天一觀的道長(zhǎng)闷愤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)件余,這世上最難降的妖魔是什么讥脐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任遭居,我火速辦了婚禮,結(jié)果婚禮上旬渠,老公的妹妹穿的比我還像新娘俱萍。我一直安慰自己,他們只是感情好告丢,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布枪蘑。 她就那樣靜靜地躺著,像睡著了一般岖免。 火紅的嫁衣襯著肌膚如雪岳颇。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,158評(píng)論 1 308
  • 那天颅湘,我揣著相機(jī)與錄音赦役,去河邊找鬼。 笑死栅炒,一個(gè)胖子當(dāng)著我的面吹牛掂摔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赢赊,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乙漓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了释移?” 一聲冷哼從身側(cè)響起叭披,我...
    開(kāi)封第一講書(shū)人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玩讳,沒(méi)想到半個(gè)月后涩蜘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡熏纯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年同诫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片樟澜。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡误窖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出秩贰,到底是詐尸還是另有隱情霹俺,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布毒费,位于F島的核電站丙唧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏觅玻。R本人自食惡果不足惜想际,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一培漏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沼琉,春花似錦、人聲如沸桩匪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)傻昙。三九已至闺骚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妆档,已是汗流浹背僻爽。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贾惦,地道東北人胸梆。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像须板,于是被迫代替她去往敵國(guó)和親碰镜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容