用户授权同步
接口说明
- 管理员被授权管理某企业后,在买家中心登录,对企业内用户授权该企业已绑定的应用,云商店异步调用该接口请求商家同步该企业应用的用户授权信息,商家接口需要执行授权信息同步,保存用户授权信息,并返回通知云商店。
- 针对租户应用授权信息同步场景接口调用失败的情况,由企业管理员选择是否要继续进行同步。并用短信或邮件的形式通知ISV商家接口调用失败。
- 商家的服务器在处理接口请求时,需要做好幂等性处理。
对于同一个实例,相同的租户,相同的应用,相同的userName,要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。
租户同步流程如下图所示:

请求方法:POST
接口URL:生产地址+固定子路径,其中固定子路径为/produceAPI/authSync;
接口示例:生产地址为https://example.isv.com,则接口URL为https://example.isv.com/produceAPI/authSync
Headers请参数
| 参数 | 必选 | 参数类型 | 描述 |
|---|---|---|---|
| authToken | M | String(255) | 签名信息,请参考auth Token取值说明。 |
BODY请求参数
| 参数 | 必选 | 参数类型 | 描述 |
|---|---|---|---|
| instanceId | M | String(64) | 说明: 卖家申请应用凭证的时候传空,买家必传。 |
| tenantId | M | String(64) | 租户ID,与租户同步的接口租户ID保持一致,这个ID是买家 |
| appId | M | String(64) | 应用ID,与应用同步的应用ID保持一致的 |
| userList | M | String | 授权用户信息,包含userName:账号名(M)、name:姓名(M)、position:职位(O)、orgCode:部门(M)、role:角色(user-普通用户,admin-管理员)(M)、enable:账号状态(true-启用,false-禁用)(M)、employeeCode:工号(O)、employeeType:人员类型(1:正式 2:实习 3:劳务派遣 4:劳务外包)(O)、mobile:手机号(O)、email:邮箱(O)、workPlace:工作所在地(O)、entryDate:入职时间(yyyy-MM-d)(O) JSON串,例: [{\"userName\":\"zhangsan01\",\"name\":\"张三\",\"position\":\"系统管理员\",\"orgCode\":\"123456789\",\"role\":\"admin\",\"enable\":\"true\",\"employeeCode\":\"\",\"mobile\":\"\",\"email\":\"\",\"extension\":{\"entryDate\":\"2022-11-9\",\"employeeType\":\"4\",\"workPlace\":\"南京\"}},{\"userName\":\"lisi02\",\"name\":\"李四\",\"position\":\"运营经理\",\"orgCode\":\"123456789\",\"role\":\"user\",\"enable\":\"true\",\"extension\":{\"entryDate\":\"2022-11-16\",\"employeeType\":\"4\",\"workPlace\":\"南京\"}}] ISV需要根据角色给用户进行赋权,如果admin赋予管理员角色 最大一次同步用户数是500个 |
| currentSyncTime | M | String | 默认时区东8区,时间戳,时间格式:20220420114117642 |
| flag | M | Integer(2) | 0-删除 1-新增 2-修改 |
| testFlag | M | Integer(2) | 0-生产正式数据 1-调测数据 |
| timeStamp | M | String | 默认时区东8区,时间戳,时间格式:20220420114117642 |
响应参数
| 参数 | 必选 | 参数类型 | 描述 |
| resultCode | M | String(6) | 响应码,具体请参见调用结果码说明。 |
| resultMsg | O | String(255) | 响应信息 |
示例:
POST https://example.isv.com/produceAPI/authSync
Connection: keep-alive
Content-Type: application/json
authToken: "stbNYl*****************Ubt271qDr6WDAVLtLRb”
Host: example.isv.com
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191)
{
"instanceId": "huaiweitest123456",
"tenantId": "68cbc86ab******92f36422fa0e",
"appId": "KSID******34456",
"userList": "[{ userName:\"zhangsan01\",name:\"张三\",position:\"系统管理员\",orgCode:\"123456789\",role:\"admin\" enable:\"true\"},{ userName:\"lisi\",name:\"李四\",position:\"用户\",orgCode:\"123456789\",role:\"user\" enable:\"true\"},]",
" currentSyncTime": "20220413093539534",
"flag": 1,
"testFlag": 0,
"timeStamp": "20220413093539534",
}
HTTP/1.1 200 OK
Body-Sign: sign_type="HMAC-SHA256", signature= "xxxxxxxxxx"
Content-Type: application/json
{
" resultCode": "000000",
" resultMsg": "Success"
}