第一步:成爲開發者php
在本身的公衆號點擊基本配置,點擊基本配置,填寫服務器配置json
Url服務器地址是微信回調地址,必須以 http://或https://開頭,端口號必須爲80或443。
Token令牌由用戶本身定義,數字或字母,長度爲3~32字符。
EncodingAESKey隨機生成便可。
加密方式能夠選明文模式和安全模式api
點擊提交,微信會發送請求到你填寫的url地址驗證服務器是否與所填寫的資料匹配,配置成功則能夠開始開發了數組
第二步:微信網頁受權安全
微信受權分爲靜默受權和非靜默受權服務器
靜默受權:用戶感覺不到他們操做了受權,公衆號開發者獲取的資料較少,微信
非靜默受權:用戶須要點擊受權,開發者得到用戶較多的信息,好比所在省市,暱稱頭像等app
前提配置:加密
1.獲取公衆號appID和appsecreturl
2.開發 - 接口權限 - 網頁服務 - 網頁賬號 - 網頁受權獲取用戶基本信息」的配置選項中,修改受權回調域名,例:www.qq.com,不用加http等協議
受權步驟:
1.用戶關注微信公衆帳號。
2.微信公衆帳號提供用戶請求受權頁面URL。公衆號提供一個連接或二維碼或點擊的自定義菜單,若用戶點擊,開發者服務器向微信服務器接口發送請求獲取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
例:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4a22b50d7e897f97&redirect_uri=http%3a%2f%2fad.seewo.com%2foauth.php&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
*Appid: 公衆號的惟一標識(這個就是咱們前面申請的)
*redirect_uri: 受權後回調的url(這裏須要具體,在咱們前面設置的回調域名後加具體的文件或方法地址)
*response_type: 返回類型,請填寫code
*Scope: 應用受權做用域,snsapi_base (靜默受權,不彈出受權頁面,直接跳轉,只能獲取用戶openid),snsapi_userinfo (彈出受權頁面,可經過openid拿到暱稱、性別、所在地。而且,即便在未關注的狀況下,只要用戶受權,也能獲取其信息)
State: 重定向後會帶上state參數,開發者能夠填寫a-zA-Z0-9的參數值,最多128字節,該值會被微信原樣返回,咱們能夠將其進行比對,防止別人的攻擊。
#wechat_redirect:直接在微信打開連接可不填此參數。作頁面302重定向時候,必須帶此參數
3.用戶點擊受權頁面URL,將向服務器發起請求
4.服務器詢問用戶是否贊成受權給微信公衆帳號(snsapi_base時無此步驟)
5.用戶贊成(snsapi_base時無此步驟)
6.服務器將CODE經過回調傳給微信公衆帳號,同時給回調域名根目錄下全部php文件
7.微信公衆帳號得到CODE,域名下php文件獲取code
8.微信公衆帳號經過CODE向服務器請求Access Token,域名下PHP文件請求access token
例:https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx41cb8dbd827a16e9&secret=d4624c36b6795d1d99dcf0547af5443d&code=00137323023ab55775be09d6d8e75ffA&grant_type=authorization_code
*Appid 公衆號的惟一標識
*Secret 公衆號的appsecret
*Code 填寫第一步獲取的code參數
*grant_type 填寫爲authorization_code
9.服務器返回Access Token和OpenID給微信公衆帳號和回調域名
正確返回以下:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
access_token 網頁受權接口調用憑證,注意:此access_token與基礎支持的access_token不一樣
expires_in access_token 接口調用憑證超時時間,單位(秒)
refresh_token 用戶刷新access_token
Openid 用戶惟一標識
Scope 用戶受權的做用域,使用逗號(,)分隔
10.微信公衆帳號經過Access Token向服務器請求用戶信息(snsapi_base時無此步驟)
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
11.服務器將用戶信息回送給微信公衆帳號(snsapi_base時無此步驟)
{
"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"
}
Openid 用戶的惟一標識
Nickname 用戶暱稱
Sex 用戶的性別,值爲1時是男性,值爲2時是女性,值爲0時是未知
Province 用戶我的資料填寫的省份
City 普通用戶我的資料填寫的城市
Country 國家,如中國爲CN
Headimgurl 用戶頭像,最後一個數值表明正方形頭像大小(有0、46、64、96、132數值可選,0表明640*640正方形頭像),用戶沒有頭像時該項爲空。若用戶更換頭像,原有頭像URL將失效。
Privilege 用戶特權信息,json 數組,如微信沃卡用戶爲(chinaunicom)
Unionid 只有在用戶將公衆號綁定到微信開放平臺賬號後,纔會出現該字段。詳見:獲取用戶我的信息