第1章 交互流程

图一:整体交互流程图

图二:时序图
交互过程:
1.企业购买udpp服务,初始化需要填入【接收消息API】,初始化完成后页面会出现【udpp服务id】,该字段需要记录下来,后续会用到;
2.企业初始化进行模板信息管理,注意需要企业方提供【访问权API】以及【可携带权API】;
3.C端用户登录企业pc/移动端,企业后端服务需要将【udpp服务id】以及该【用户在企业的唯一标识】传入udppAPI接口【预注册接口】,返回访问udpp服务H5页面的url以及token,token一旦生成不会变动,企业方需要将返回的token保存起来,后续H5页面调用【访问权API】和【可携带权API】会带上token;
4.直接使用上一步【预注册接口】返回的【urlWithToken】字段可直接访问该用户UDPP的H5模板配置页面;
5.用户在H5页面上配置完UDPP模板,后端将推送该模板信息给企业方;
6.企业和用户每次修改模板数据UDPP服务均会异步上链存于blockdb中作为存证。
第2章 接入方需要准备接口
接入方需要提供3个API:1.接收消息API
2.访问权API
3.可携带权API
2.1 接收消息API
用于接收UDPP服务推送用户保存的模板信息
·Uri:/server/receive
·Method Type:POST
·Content Type:application/json
·Request Body:
推送json格式:
{
"colorConfigs": [
{
"bgColor": "string",
"themeColor": "string",
"type": "string"
}
],
"creator": "string",
"eid": "string",
"gmtCreated": "2020-04-08T08:53:55.518Z",//date类型
"gmtModified": "2020-04-08T08:53:55.518Z",//date类型
"id": "string",
"isDeleted": "string",
"modifier": "string",
"tabs": [
{
"options": [
{
"details": [
{
"checkboxOptions": [
{
"label": "string",
"value": "string"
}
],
"checked": [
"string"
],
"dataProcessingPurpose": [
"string"
],
"desc": "string",
"exp": "string",
"name": "string",
"options": [
{
"label": "string",
"value": "string"
}
],
"placeholder": "string",
"settingList": [
{
"infoList": [
{
"exp": "string",
"label": "string",
"name": "string",
"placeholder": "string",
"value": "string"
}
],
"title": "string"
}
],
"shareList": [
{
"checked": [
"string"
],
"companyName": "string"
}
],
"title": "string",
"type": "string",
"value": "string"
}
],
"optionCheck": "string",
"optionCode": "string",
"optionConfigInfo": "string",
"optionName": "string",
"optionOrder": 0,
"optionShow": "string",
"parentOrder": 0
}
],
"tabCode": "string",
"tabName": "string",
"tabOrder": 0
}
],
"tenantId": 0,
"tenantName": "string",
"udppInfoId": "string",
"udppTemplateBId": "string",
"udppTemplateCIdLast": "string",
"version": "string"
}
2.2 访问权API
用于UDPP服务H5页面上查询使用用户信息的记录
·Uri:/server/queryUsedRecord/{token}
·Method Type:POST
·Content Type:application/json
·Request Body:
字段名称 类型 必填(Y/N) 备注
pageNo int Y 页码,默认1
pageSize int Y 每页条数,默认10
·Response Body:
字段名称 类型 备注
success Boolean 调用API是否成功,true为成功,false为失败
errorCode String 若调用失败,返回错误代码
errorMsg String 若调用失败,返回错误信息
pageNo int 页码
pageSize int 每页大小
total int 总记录数
data JsonArray 若调用成功,返回部署成功的合约信息,示例:
"data": [
{
"action": "更新用户画像",
"createDate": "2020-04-07 12:03"
},
{
"action": "市场营销",
"createDate": "2020-04-06 11:03"
},
{
"action": "市场营销",
"createDate": "2020-04-06 10:03"
}
]
返回值描述:
action 行为名称
createDate 行为发生时间
请求示例:
req:
curl -X POST "http://za-udpp-test.test.za-tech.net/api/v1/udpptest/server/queryUsedRecord/1" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"pageNo\": 1, \"pageSize\": 3}"
resp:
{
"success": true,
"errorCode": "0000",
"errorMsg": "Success",
"pageNo": 1,
"pageSize": 3,
"total": 12,
"data": [
{
"action": "更新用户画像",
"createDate": "2020-04-07 12:03"
},
{
"action": "市场营销",
"createDate": "2020-04-06 11:03"
},
{
"action": "市场营销",
"createDate": "2020-04-06 10:03"
}
]}
2.3 可携带权API
用于UDPP服务H5页面上下载企业和用户信息excel
·Uri:/server/download/{token}
·Method Type:GET
·Content Type:application/json
. token为【预注册接口】/udpp/tenant/preRegister返回的
返回:excel的文件流
其中Head头
contentType : application/vnd.ms-excel
Content-Disposition:attachment;fileName=data.xls
Excel文件包含的信息:
"用户姓名", "身份证号", "手机号", "邮箱", "企业名称","企业法人","企业组织代码","企业社会信用代码","业务注册信息","税务注册信息"
注意:在配置B端模板填入【可携带权API】时候,无须将“/{token}”填入
第3章 UDPP-API身份验证
3.1 注册账号并申请使用权限
众安科技云会为每个API调用进行身份验证,所以在调用众安科技云BaaS平台API之前,用户需要注册并申请权限,具体如下:
1、登录进入“众安科技云控制台”,如果没有账号请注册。
VPC生产环境:https://console.zhongan.io/

2、在“众安科技云控制台”完成实名认证。

3、进入“众安科技云用户数据隐私UDPP”购买产品。
VPC生产环境:https://udpp.zhongan.io/
点击购买,跳转购买页面:

选择产品规格后,点击下一步完成支付;

4、在“众安科技云控制台”创建应用密钥。
进入用户中心- 应用秘钥管理页面:

进入应用密钥管理页面,并点击accessKey创建密钥:

点击编辑绑定密钥和UDPP产品:

5、应用密钥创建成功,获取accessKey和accessSecret。其中accessKey用于标识用户身份,accessSecret用于客户端加密签名、服务器端验证签名和调用api的凭证,必须严格保密。
第4章 UDPP-API调用
4.1 引入SDK的maven依赖
<dependency>
<groupId>com.zhongan.tech</groupId>
<artifactId>anlink-openapi-sdk</artifactId>
<version>1.3.6-RELEASE</version>
</dependency>
4.2 初始化client
//设置环境,可选值SDKConstants.ENV_DEV、SDKConstants.ENV_TEST、SDKConstants.ENV_UAT、SDKConstants.ENV_PRE、SDKConstants.ENV_PRD,分别对应VPC的5套环境
//设置AccessKey和AccessSecret用于API身份验证,获取方法请参考第1章
SDKConfig config = new SDKConfig(SDKConstants.ENV_DEV, accessKey, accessSecret);
//初始化client
IAnlinkClient client = new DefaultAnlinkClient(config);
4.3 通过client调用API
//创建API请求
AnlinkRequest request= new AnlinkRequest();
//设置Uri,以下为示例Uri,每个API的真实Uri请参考第3章
String uri = "/demo/uri";
request.setUri(uri);
//设置Method Type,以下为示例Method Type,每个API的真实Method Type请参考第3章
request.setMethodType(MethodType.POST);
//设置Content Type,以下为示例Content Type,每个API的真实Content Type请参考第3章
request.setContentType("application/json");
request.setAccept("application/json");
//设置Request Body,以下为示例Request Body,每个API的真实Request Body请参考第3章
Map<String,Object> requestBody= new HashMap<String, Object>();
requestBody.put("requestkey1","requestvalue1");
request.setPostData(requestBody);
//设置是否给Request Body签名
request.setIfSignPostBody(LogicEnum.YES);
//调用API
String result =client.doAction(request);
第5章 UDPP-API列表
5.1 预注册接口
·Uri:/udpp/tenant/preRegister
·Method Type:POST
·Content Type:application/json
·Request Body:N/A
字段名称 类型 必填(Y/N) 备注
udppInfoId String Y Udpp服务id
eId String Y 用户在企业方唯一id
·Response Body:
字段名称 类型 备注
success Boolean 调用API是否成功,true为成功,false为失败
errorCode String 若调用失败,返回错误代码
errorMsg String 若调用失败,返回错误信息
result JsonObject 若调用成功,返回令牌以及udpp服务访问地址示例:
"result": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0ZW5hbnRJZCI6MTAwMzkwMywiZUlkIjoiMyIsInVkcHBJbmZvSWQiOiIxIn0.BrGbJ0dRWadY3lx_piiM9KRbnsrMDRzicwQby_KB6i8",
"url": "https://udpp-h5.zhongan.io",
"urlWithToken": "https://baidu.com?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0ZW5hbnRJZCI6MTAwMzkwMywiZUlkIjoiMyIsInVkcHBJbmZvSWQiOiIxIn0.BrGbJ0dRWadY3lx_piiM9KRbnsrMDRzicwQby_KB6i8"
}
返回值描述:
token : 是udpp服务根据udpp服务id、企业用户唯一标识、企业唯一标识生成的h5访问令牌,不会变动,需要企业方保存,后续交互接口会使用。
url : 是udpp服务h5域名地址
urlWithToken:udpp服务h5域名地址并包含token,可用于直接访问用户设置的模板