更新时间:2024-01-19 GMT+08:00
分享

租户应用授权信息同步接口

接口说明

  • 管理员被授权管理某企业后,在买家中心登录,对企业内用户授权该企业已绑定的应用,云商店异步调用该接口请求商家同步该企业应用的用户授权信息,商家接口需要执行授权信息同步,保存用户授权信息,并返回通知云商店。
  • 针对租户应用授权信息同步场景接口调用失败的情况,由企业管理员选择是否要继续进行同步。并用短信或邮件的形式通知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"
}

HTTP Body签名:

Body-Sign: sign_type="HMAC-SHA256", signature= "xxxxxxxxxxxxx" ,详情参考《HTTP Body签名》

相关文档