去年作了一陣APP相關的開發,常常遇到第三方登錄的需求,好比微信、微博、fb的第三方登錄等等,其實主要的流程都大同小異,這裏就以微信爲例來介紹,但願對你們有幫助。前端
- 註冊開發者帳號,填寫基本信息,例如郵箱,郵箱激活
- 完善開發者的資料,包括真實姓名,手機,地址等
- 騰訊審覈開發者資質,審覈費用每一年300
- 在管理中心建立應用,分移動應用、網站應用等不一樣類型
- 填寫應用的名稱、簡介、logo、應用的官方網站等信息
- 騰訊審覈,7個工做日
- 經過後可得到該應用的APPID、AppSecret
- 而且可在應用詳情中申請開通微信登陸、微信支付等
1.1. 移動應用調用SDK
1.2. 網站應用調用程序員
https://open.weixin.qq.com/connect/qrconnect
並傳入APPID,及重定向地址,生成二維碼地址。用戶使用微信掃描二維碼並贊成受權後,跳轉至重定向地址,而且帶來了受權碼。json
2.1. 經過調用api
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
返回結果相似以下:ruby
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",
"unionid": "UNIONID"
}
2.2. access_token有效期
有效期較短(2小時),refresh_token有效期一個月,可使用refresh_token刷新access_token,避免頻繁要求用戶贊成受權。微信
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
2.3. 多個應用的狀況
若是同時有多個應用,同一個微信用戶在不一樣的應用上登陸會生成不一樣的openid,但unionid相同,若須要同一微信用戶映射到後臺的同一帳戶上,應使用unionid。app
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID"
以上調用步驟能夠徹底由前端(APP、WEB)完成,不過通常應用後臺有本身的一套用戶系統,因此應用後臺能夠在不一樣的步驟介入,例如能夠在前端活動用戶信息後調用後臺進行入庫保存,或者也可已在得到access_token後介入,由後臺訪問微信獲取用戶信息。大數據
好了,今天就先到這兒,cheers!
微信支付