> 文档版本: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 | 用户的加密后的身份证号 |
返回说明
![](https://img.kancloud.cn/68/59/6859ad7ce34d36b11efd7213956ba3df_2192x906.png)
未设置AESKEY 返回值
正确时返回的JSON数据包如下:
{
"errcode": 0,
"data": {
"card\_no": "21081120000101151X",
"name": "李四",
"mobile": "15888888891"
},
"errmsg": "success"
}
设置AESKEY值
![](https://img.kancloud.cn/f7/44/f7443f4a42595235fc48f953c6d8111e_1562x694.png)
加密后出参
| 参数 | 说明 |
| --- | --- | --- |
| 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