> 文檔版本:1.0.1
> 編輯時間:2021.09.17
## 第三方在盛事通展開自己業務用戶授權說明
> 生產域名:https://shengstapi.tripln.top
> 測試域名:http://wanglanglang.tripln.top
### 調用盛事通用戶授權前需要準備如下材料
1. 需要盛事通提供開發開發者ID(AppID)和開發者密碼(AppSecret)
2. 需要提供授權回調域名給盛事通
> 2、授權回調域名配置規范為全域名,比如需要網頁授權的域名為:www.shengst.com,配置以后此域名下面的頁面http://www.shengst.com/music.html 、 http://www.shengst.com/login.html 都可以進行OAuth2.0鑒權。但http://pay.shengst.com 、 http://music.shengst.com 、 http://shengst.com 無法進行OAuth2.0鑒權
**第一步:獲取code**
https://shengstapi.tripln.top/api/uc/ctcyq/oauth2Service/authorize?appid=APPID&redirect\_uri=REDIRECT\_URI&response\_type=code&state=STATE#shengst\_redirect 若提示“該鏈接無法訪問”,請檢查參數是否填寫錯誤。
**注意:此鏈接是在瀏覽器中訪問的,不是用戶自己頁面中執行http請求**
尤其注意:由于授權操作安全等級較高,所以在發起授權請求時,盛事通會對授權鏈接做正則強匹配校驗,如果鏈接的參數順序不對,授權頁面將無法正常訪問
> 尤其注意:跳轉回調redirect_uri,應當使用https鏈接來確保授權code的安全性。
參數說明
| 參數 | 是否必須 | 說明 |
| --- | --- | --- |
| appid | 是 | 盛事通分配的唯一標識 |
| redirect\_uri | 是 | 授權后重定向的回調鏈接地址, 請使用 urlEncode 對鏈接進行處理 |
| response\_type | 是 | 返回類型,請填寫code |
| state | 否 | 重定向后會帶上state參數,開發者可以填寫a-zA-Z0-9的參數值,最多128字節 |
| #shengst\_redirect | 是 | 無論直接打開還是做頁面302重定向時候,必須帶此參數 |
**授權成功后**
成功授權后,頁面將跳轉至 redirect\_uri/?code=CODE&state=STATE。
> code說明 : code作為換取access\_token的票據,每次用戶授權帶上的code將不一樣,code只能使用一次,5分鐘未被使用自動過期。
### 備注說明
> http://wanglanglang.tripln.top/subsidy/#/city-card-index-v7(測試)
> https://shengst.tripln.top/subsidy/#/city-card-index-v7(生產)
> 調用第一個接口的時候先訪問下這個網址,相當于在我們系統登錄了。
> 這個網址都需要在微信中打開。(生產環境是在app中進行的)
**第二步:通過code換取網頁授權access\_token**
通過code調用下面的鏈接地址可以獲取到card_no(身份證號)和access\_token(票據)。
尤其注意:由于盛事通分配的secret和獲取到的access\_token安全級別都非常高,必須只保存在服務器,不允許傳給客戶端。后續刷新access\_token、通過access\_token獲取用戶信息等步驟,也必須從服務器發起。
請求方法
> 獲取code后,請求以下鏈接獲取access\_token: https://shengstapi.tripln.top/api/uc/ctcyq/oauth2Service/access\_token?appid=APPID&secret=SECRET&code=CODE&grant\_type=authorization\_code
**注意:此接口需要后端java進行請求,不要在h5頁面中請求**
| 參數 | 是否必須 | 說明 |
| --- | --- | --- |
| appid | 是 | 開發者的id |
| secret | 是 | 開發者密鑰 |
| code | 是 | 填寫第一步獲取的code參數 |
| grant\_type | 是 | 填寫為authorization\_code |
返回說明
正確時返回的JSON數據包如下:
~~~
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"card_no":"kMFSSQhcQDJfDlsocbaxXMYHrMh/sg2OLctfIUpgpvg="
}
~~~
| 參數 | 描述 |
| --- | --- |
| access\_token | 網頁授權接口調用憑證,注意:此access\_token與基礎支持的access\_token不同 |
| expires\_in | access\_token接口調用憑證超時時間,單位(秒) |
| refresh\_token | 用戶刷新access\_token |
| card_no | 加密后的身份證號 |
錯誤時盛事通會返回JSON數據包如下(示例為Code無效錯誤):
~~~
{"errcode":9001,"errmsg":"invalid code"}
~~~
**第三步:拉取用戶信息**
請求方法
> http:GET(請使用https協議) https://shengstapi.tripln.top/api/uc/ctcyq/oauth2Service/userinfo?access\_token=ACCESS\_TOKEN&card_no=kMFSSQhcQDJfDlsocbaxXMYHrMh/sg2OLctfIUpgpvg=
**注意:此接口需要后端java進行請求,不要在h5頁面中請求**
參數說明
| 參數 | 描述 |
| --- | --- |
| access\_token | 網頁授權接口調用憑證|
| card_no | 用戶的加密后的身份證號 |
返回說明

未設置AESKEY 返回值
正確時返回的JSON數據包如下:
{
"errcode": 0,
"data": {
"card\_no": "21081120000101151X",
"name": "李四",
"mobile": "15888888891"
},
"errmsg": "success"
}
設置AESKEY值

加密后出參
| 參數 | 說明 |
| --- | --- | --- |
| address | 地址 |
| card\_no | 身份證號碼 |
| nation | 民族 |
| sex | 性別 1男2 女 |
| name | 姓名 |
| mobile | 手機號碼 |
{
"errcode": 0,
"data": {
"address": "遼寧省營口市老邊區路南鎮大興村3號9",
"card\_no": "3231303831313139fcf659a0a2ab06cf6ea0",
"nation": null,
"sex": "1",
"name": "-c5c3689288ef43e021a3",
"mobile": "31f0fb5ca2a3aa0eca6ac9"
},
"errmsg": "success"
}
## 解密的工具類下載地址
> https://hd-doc.oss-cn-hangzhou.aliyuncs.com/outreademe/EncrUtil.java