文档中心
UDPP产品API接入说明

第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,可用于直接访问用户设置的模板