微信開發之網頁受權

第一步:成爲開發者php

  在本身的公衆號點擊基本配置,點擊基本配置,填寫服務器配置json

Url服務器地址是微信回調地址,必須以 http://或https://開頭,端口號必須爲80或443。 
Token令牌由用戶本身定義,數字或字母,長度爲3~32字符。 
EncodingAESKey隨機生成便可。 
加密方式能夠選明文模式和安全模式api

點擊提交,微信會發送請求到你填寫的url地址驗證服務器是否與所填寫的資料匹配,配置成功則能夠開始開發了數組

第二步:微信網頁受權安全

微信受權分爲靜默受權和非靜默受權服務器

靜默受權:用戶感覺不到他們操做了受權,公衆號開發者獲取的資料較少,微信

非靜默受權:用戶須要點擊受權,開發者得到用戶較多的信息,好比所在省市,暱稱頭像等app

前提配置:加密

1.獲取公衆號appIDappsecreturl

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=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

: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 TokenOpenID給微信公衆帳號和回調域名

正確返回以下:

{

   "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 用戶頭像,最後一個數值表明正方形頭像大小(有0466496132數值可選,0表明640*640正方形頭像),用戶沒有頭像時該項爲空。若用戶更換頭像,原有頭像URL將失效。

Privilege 用戶特權信息,json 數組,如微信沃卡用戶爲(chinaunicom

Unionid 只有在用戶將公衆號綁定到微信開放平臺賬號後,纔會出現該字段。詳見:獲取用戶我的信息

相關文章
相關標籤/搜索