微信公衆平臺 - 授權接口說明

一、基礎接口access_token

    憑據 access_token 是公衆號的全局唯一接口調用憑據,公衆號調用各接口時都需使用 access_token 作爲認證要素

    獲取到的 access_token 有效期爲2個小時,且獲取接口的調用次數有限制,需要存儲複用並定時刷新,公衆平臺會保證在刷新的5分鐘內新老 access_token 都可用實現業務的平滑過渡

    公衆號在調用接口獲取 access_token 時,需要提前將服務器的 IP 地址添加到微信公衆平臺的基本配置的 IP 白名單中,小程序無需配置 IP 白名單

  •     請求說明
參數名稱 是否必須 說明
grant_type 獲取 access_token 填寫 client_credential
appid 第三方用戶唯一憑證
secret

第三方用戶唯一憑證密鑰,即 appsecret

        https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxa418d7jd5b2ab75c&secret=c4a86bc98d3ce4189bei78d3b67482a2

  •     返回說明
參數名稱 參數說明
access_token 獲取到的基礎接口憑證
expires_in 憑證有效時間,單位:秒
/************成功示例************/
{
    "access_token": "22_AfDy6E_UokcJ3GGrWwhcyEr5r-LN0T7aVmN74VDfrZmw7eeiXmMWb7AU6Z9mYq7Ey5Nggl82bSPn",
    "expires_in": 7200
}

/************失敗示例************/
{
    "errcode": 40013,
    "errmsg": "invalid appid"
}

二、網頁授權access_token

    用戶在微信客戶端中訪問第三方網頁,公衆號可以通過微信網頁授權機制,來獲取用戶基本信息,進而實現業務邏輯

    微信網頁授權是通過 OAuth2.0 機制實現的,在用戶授權給公衆號後,公衆號可以獲取到一個網頁授權特有的接口調用憑證,即網頁授權 access_token,通過網頁授權 access_token 可以進行授權後接口調用,如獲取用戶基本信息

    網頁授權 access_token 需要通過 code 換取,同時返回的還有 openid 即用戶唯一標識;返回報文類型爲 JSON 類型

  •     請求說明
參數名稱 是否必須 參數說明
appid 公衆號的唯一標識
secret 公衆號的appsecret
code 填寫code參數,見三
grant_type 填寫爲authorization_code

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxa418d7jd5b2ab75c&secret=c4a86bc98d3ce4189bei78d3b67482a2&code=061DSI9p1nYAak0VIBdp1rgt9p1DSI9I&grant_type=authorization_code

  •     返回說明
參數名稱 參數說明
access_token 網頁授權接口調用憑證。注意:此 access_token 與基礎接口的 access_token 不同
expires_in access_token 接口調用憑證超時時間,單位(秒)
refresh_token 用戶刷新 access_token
openid 用戶唯一標識。注意:用戶在未關注公衆號時訪問也會產生一個唯一的OpenID
scope 用戶授權的作用域,使用逗號(,)分隔
/************成功示例************/
{
    "access_token": "22_qlj-5sxlhqQSykf2eW2OpIAGXoxx_JBlDmkBmhb6H9QXhnBw_mPjsYqDt18C-hwAwdWbf0N",
    "expires_in": 7200,
    "refresh_token": "22_E7O3tE50OmaLI_7-JLEgbqFCflsfwvqR0-6nKMsOjrsvygnz4GcSDjCKDS4hGnMvi_eE3c",
    "openid": "ov5yQ8_ILc_--TfUa-IzuIL-B5Ok",
    "scope": "snsapi_userinfo"
}

/************失敗示例************/

{"errcode":40029,"errmsg":"invalid code"}

三、網頁授權前置code

    在獲取網頁授權 access_token 時,需要先獲取 code 做爲票據。每次用戶授權後返回的 code 都是不一樣,一個 code 只能使用一次,且5分鐘未被使用將自動過期

    以 snsapi_base 爲 scope 發起的網頁授權,是用來獲取進入頁面的用戶的 openid 的,這種授權是靜默授權並自動跳轉到 redirect_uri 指定的回調頁

    以 snsapi_userinfo 爲 scope 發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,且由於用戶同意過,所以無須關注就可在授權後獲取該用戶的基本信息

    獲取 code 的請求必須在微信瀏覽器內發送,在靜默授權或用戶確認後,公衆平臺將自動跳轉請求到 redirect_uri 指定的回調地址

  •     請求說明
參數名稱 是否必須 參數說明
appid 公衆號的唯一標識
redirect_uri 授權後重定向的回調鏈接地址。使用 urlEncode 對鏈接進行處理
response_type 返回類型,請填寫code
scope 應用授權作用域,snsapi_base 或 snsapi_userinfo
state 重定向後會帶上state參數,可以填寫a-zA-Z0-9的參數值,最多128字節
#wechat_redirect 無論直接打開還是做頁面302重定向時候,必須帶此參數

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxa418d63f5b2ab75c&redirect_uri=http%3A%2F%2Fdemo.xl.com%2Fwx%2Foauth%2Flogin%3Fparam%3Dvalue&response_type=code&scope=snsapi_userinfo&state=10001#wechat_redirect

  •     回調說明
參數名稱 參數說明
code 換取 網頁授權 access_token 的票據
state 官方回調的保留域,回調跳轉時原樣攜帶返回
param 自定義的參數名及其參數值,回調跳轉時原樣攜帶返回

    http://demo.xl.com/wx/oauth/login?param=value&code=071mv17I1Fikw00a5N8I19KM6I1mv17J&state=10001

四、網頁開發jsapi_ticket

    微信 JS-SDK 是微信公衆平臺面向網頁開發者提供的基於微信內的網頁開發工具包,通過JS-SDK可藉助微信使用拍照、選圖、語音、位置等手機系統的能力,同時可以直接使用分享、掃一掃、卡券、支付等微信特有的能力

    jsapi_ticket 是公衆號調用 JS-SDK 接口的票據,所有需要使用 JS-SDK 的頁面都必須先通過 wx.config 注入權限驗證配置,而配置中的 signature 字段的生成則需要 jsapi_ticket 的參與

    獲取 jsapi_ticket 需要通過基礎接口 access_token 作爲票據,獲取接口的調用次數有限制,需要存儲複用並定時刷新,獲取到的 jsapi_ticket 有效期爲7200秒,接口返回類型爲 JSON 類型

  •     請求說明
參數名稱 是否必須 參數說明
type 請求類型,請填寫 jsapi
access_token 基礎接口 access_token。見一

    https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=22_AfDy6E_UokcJ3GGrWwhcyEr5r-LN0T7aVmN74VDfrZmw7eeiXmMWb7AU6Z9mYq7Ey5Nggl82b

  •     返回說明
參數名稱 參數說明
errcode 錯誤代碼
errmsg 錯誤消息
ticket 網頁開發工具包 JS-SDK 接口的調用票據
expires_in 憑證有效時間,單位:秒
{
    "errcode": 0,
    "errmsg": "ok",
    "ticket": "LIKLckvwlJT9cWIhEQTwfIn035troj3P-aU7eHjdlobrTrMGEwUne8ON3n2GlJogGlKpo46nE4ZPw3qc7w",
    "expires_in": 7200
}

附、微信測試公衆號

    https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章