php微信公众号登录
1.登錄公眾號(hào)/接口權(quán)限/頁面權(quán)限
文檔:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
查看是否有網(wǎng)頁授權(quán)權(quán)限,沒有就得去認(rèn)證,個(gè)人公眾號(hào)無法認(rèn)證,只有企業(yè)號(hào)才能.
?
2.認(rèn)證成功后,單擊網(wǎng)頁授權(quán)后的修改按鈕,修改網(wǎng)頁授權(quán)域名,下載驗(yàn)證文件,放入服務(wù)器項(xiàng)目根目錄。
關(guān)于網(wǎng)頁授權(quán)的兩種scope的區(qū)別說明
1、以snsapi_base為scope發(fā)起的網(wǎng)頁授權(quán),是用來獲取進(jìn)入頁面的用戶的openid的,并且是靜默授權(quán)并自動(dòng)跳轉(zhuǎn)到回調(diào)頁的。用戶感知的就是直接進(jìn)入了回調(diào)頁(往往是業(yè)務(wù)頁面)
2、以snsapi_userinfo為scope發(fā)起的網(wǎng)頁授權(quán),是用來獲取用戶的基本信息的。但這種授權(quán)需要用戶手動(dòng)同意,并且由于用戶同意過,所以無須關(guān)注,就可在授權(quán)后獲取該用戶的基本信息。
3、用戶管理類接口中的“獲取用戶基本信息接口”,是在用戶和公眾號(hào)產(chǎn)生消息交互或關(guān)注后事件推送后,才能根據(jù)用戶OpenID來獲取用戶基本信息。這個(gè)接口,包括其他微信接口,都是需要該用戶(即openid)關(guān)注了公眾號(hào)后,才能調(diào)用成功的。
?
具體而言,網(wǎng)頁授權(quán)流程分為四步:
1、引導(dǎo)用戶進(jìn)入授權(quán)頁面同意授權(quán),獲取code
2、通過code換取網(wǎng)頁授權(quán)access_token(與基礎(chǔ)支持中的access_token不同)
3、如果需要,開發(fā)者可以刷新網(wǎng)頁授權(quán)access_token,避免過期
4、通過網(wǎng)頁授權(quán)access_token和openid獲取用戶基本信息(支持UnionID機(jī)制)
?
appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect //appid 微信公眾號(hào)后臺(tái)的appid //redirect_uri自己配置 微信回調(diào) 帶code參數(shù) urlEncode 對(duì)鏈接進(jìn)行處理 //scope snsapi_base 或者 snsapi_userinfo 其他的參數(shù)不用動(dòng)如果用戶同意授權(quán),頁面將跳轉(zhuǎn)至 redirect_uri/?code=CODE&state=STATE。
| 1 | code說明?:?code作為換取access_token的票據(jù),每次用戶授權(quán)帶上的code將不一樣,code只能使用一次,5分鐘未被使用自動(dòng)過期。 |
第二步:通過code換取網(wǎng)頁授權(quán)access_token
?
獲取code后,請(qǐng)求以下鏈接獲取access_token:??? appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code?
正確時(shí)返回的JSON數(shù)據(jù)包如下:
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }?
第三步:拉取用戶信息(需scope為 snsapi_userinfo)
?
?
http:GET(請(qǐng)使用https協(xié)議)?https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN?
?
正確時(shí)返回的JSON數(shù)據(jù)包如下:
{ ? ? "openid":" OPENID", " nickname": NICKNAME, "sex":"1", "province":"PROVINCE" "city":"CITY", "country":"COUNTRY", "headimgurl": ? ?"http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", "privilege":[ "PRIVILEGE1" "PRIVILEGE2" ? ? ], "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }總結(jié)
以上是生活随笔為你收集整理的php微信公众号登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity2D技术学习与整理
- 下一篇: php 设计模式 - 单例