第三章 模块接口(1) - 个体户注册
## 综合服务云平台 - API功能模块接口明细
## 版本更新记录
|修订日期|修订内容|修订人|
|-|-|-|
|2020.07.15|云平台 V1.0 发布|彭晓伟|
>d 接口调用细节流程:
◆ 参数RSA加密[接口签名,加解密说明](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/2kAi94fT)
◆ 将加密结果以及公共参数拼接成新的字符串通过MD5加密生成签名
◆ 将公共参数以及签名通过header传输,参数加密结果通过body传输,发起http请求
◆ 返回结果解密[接口签名,加解密说明](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/2kAi94fT)
#### 接口响应参数都为如下固定json格式
|参数名称|参数含义|数据类型|是否必有|参数备注|
|-|-|-|-|-|
|resopnseType| 返回类型|int|是|无需关注此值|
|errorCode|错误码 |String|是|详情参考[系统错误码](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/g0ttyB85)|
|errorMessage| 错误信息|String|是|详情参考[系统错误码](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/g0ttyB85)|
|status|状态码|int|是|详情参考[系统错误码](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/g0ttyB85)|
|success|是否成功|boolean|是|true:成功 false:失败|
|data|返回结果数据|String|否|只有当success为true才会有该值,该值为RSA加密值,需解密使用,解密规则请看[接口签名,加解密说明](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/2kAi94fT)|
## 1. 个体户创建
>d 注意:上传身份证正反面有两种方式(可选):第一,传入图片的方式(参数fileIdCardFront文件、fileIdCardBack文件),第二,传入图片链接的方式(idCardFrontUrl、idCardBackUrl)。 当同时传入(fileIdCardFront文件、fileIdCardBack文件)和data参数中(idCardFrontUrl、idCardBackUrl)时,优先使用(fileIdCardFront文件、fileIdCardBack文件)
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:/open/api/v1/ak/akSelfEmployedImport
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|fileIdCardFront|上传的身份证正面图片|MultipartFile|否|该参数值是身份证正面图片(注:不能仅传入该参数,应与身份证反面(fileIdCardBack)一起传)|
|fileIdCardBack|上传的身份证反面图片|MultipartFile|否|该参数值是身份证反面图片(注:不能仅传入该参数,应与身份证正面(fileIdCardFront)一起传)|
|data|该参数为个体户信息json加密后的值|String|是|说明示例如下 |
#### data数据中参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|name|个体户姓名|String|是|例:张三|
|idCard|个体户身份证号|String|是|例:410422199405051167|
|phone|个体户手机号|String|否|例:130xxxx3381|
|mainstayId|注册地|String|是|该参数值由[8.查询所拥有的主体发票行业接口](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/R9i1ih8S) 获得|
|invoiceCode|开票编码|String|是|可多选(必须属于同一行业),用英文逗号隔开。该参数值由[8.查询所拥有的主体发票行业接口](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/R9i1ih8S) 获得|
|industryCode|所属行业code|String|是|该参数值由[8.查询所拥有的主体发票行业接口](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/R9i1ih8S) 获得|
|idCardFrontUrl|身份证正面|String|否|该参数值由身份证正面图片的URL地址(注:不能仅传入该参数,应与身份证反面(idCardBackUrl)一起传)|
|idCardBackUrl|身份证反面|String|否|该参数值由身份证反面图片的URL地址(注:不能仅传入该参数,应与身份证正面(idCardFrontUrl)一起传)|
|taxType|个税算法类型|String|是|0:累进制、1核定制、2、双定制|
>d data参数示例如下
```java
String paramsJson = "{\"idCard\":\"xxxx\",\"idCardBackUrl\":\"https://xxxx/xxxx.jpeg\",\"idCardFrontUrl\":\"https://xxxx/xxxx.jpeg\",\"industryCode\":\"xxxx\",\"invoiceCode\":\"xxxx\",\"mainstayId\":\"xxxx\",\"name\":\"xxxx\",\"phone\":\"xxxx\"}"
String data= RSAHelper.encryptByPublicKey(paramsJson, publicKey);
```
#### 接口响应参数data字段解密后的参数说明:
|参数名称|参数含义| 数据类型|是否必有|参数备注|
|-|-|-|-|-|
|status|个体户状态|Integer|是|[1.个体户状态码对照表](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/g0ttyB85)|
|failReason|失败原因|String|是|该参数内容可能为空,成功的时候失败原因为空字符串|
## 2. 免密登录获取链接
>d 该接口适用场景
将综合服务平台个体户注册H5页面嵌入自己公司的APP,小程序或者公众号为了不让用户再次输入手机验证码进行登录操作。提升用户体验度。
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/ak/getTokenUrl
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|mobile|手机号|String|是|请求示例:{"mobile":"xxxxx"}|
#### 接口响应参数data字段解密后的参数说明:
|参数名称|参数含义| 数据类型|是否必有|参数备注|
|-|-|-|-|-|
|url|个体户注册链接|String|是|该链接有效时间为两分钟,如果两分钟未使用则需要重新获取一下。使用过之后会失效,第二次重新进入需要重新获取|
```json
# 响应参数示例如下。只有当 success等于true的时候才会有data里面的值
{
"resopnseType": 0,
"errorCode": "",
"errorMessage": "",
"status": 0,
"data": "UXgTVjlGdO+ughW8ZGTn2gc4CTuJEY9oUxBjKm4YaMzcPiExl5OX7sfQuQzfjLrjVwvrT1kmp8mpan0WEw3mqwuMga3tT/kkUU8wb5/TpwjG6O68rgWrHlI5PEI+dy4jgBGiJhOd1ReuVYbDZQb/06cYD5WbELGQJIuBVjZF7RA=",
"ext": null,
"extMessage": null,
"success": true
}
data解密后的内容:
{
"url": "https://testh5.lanycee.com/nosecret-login?code=359530b9d80728d038c979656d31faa4"
}
```
## 3. 个体户查询
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:/open/api/v1/ak/akSelfEmployedQuery
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|idCard|个体户身份证号|String|是||
|mainstayId|注册地|String|是|该参数值由[8.查询所拥有的主体发票行业接口](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/R9i1ih8S) 获得|
#### 接口响应参数说明:
|参数名称|参数含义| 数据类型|是否必有|参数备注|
|-|-|-|-|-|
|status| 个体户状态|Integer|是|[1.个体户状态码对照表](https://easydoc.xyz/doc/61859569/g2Oi7Qz8/g0ttyB85)|
|taxStatus|税务状态|Integer|是|0:未实名,1:已实名。当该状态变为“已实名”后才可以进行开票申请操作||
|isRefuse| 是否审核拒绝 0:未拒绝 1:审核拒绝|String|是|当个体户审核拒绝时候,该参数值为 1(表示审核拒绝)。个体户状态(status)参数依旧为 -1(待申请状态)。|
|name|个体户姓名|String|是|例:张三|
|idCard|个体户身份证号|String|是|例:410422199405051167|
|mainstayName|注册地|String|是|例:长兴|
|companyName|公司名|String|是|例:xxxx有限公司|
|taxNumber|纳税人识别号|String|否|例:91330100FS234(纳税人识别号)|
|phoneAddress|手机号、地址|String|否|例:浙江省杭州市滨江区网商路xx号 130xxxx3381|
|bankNameAccount|开户行及账户信息|String|否|例:中国工商银行杭州富春支行 330501164xxxxxxx|
|license| 营业执照|String|否|例:https://qiniu.lx-rhino.com/XXXX|
|failReason| 异常原因|String|否|该参数内容可能为空,成功的时候失败原因为空字符串|
|taxType|个税类型|Integer|是|0:累进制、1核定制、2、双定制|