拓客分销系统接入方案(分销商)

内容 隐藏
5 API接口

更新记录

2022.12.16

增加按账号限制解锁量相关接口

2022.12.20

增加解锁列表分组标签管理接口

2022.12.29

电话增加来源字段

2023.01.06

添加到OEM回调接口增加页面参数remark

2023.03.06

增加配置指定客户的数据回调地址

2023.04.03

回调接口响应体增加message字段

2023.04.17

回调接口联系方式增加isKp, eidCount字段

2023.05.06

增加拓客页面内嵌方案

2023.08.21

解锁上限设置支持按每日、每月、总解锁量控制

增加编辑企业名称接口

增加编辑账号姓名接口

2024.01.15

企业信息回调接口增加响应企业机构类型与经济类型

2024.12.26

企业回传数据筛选页面增加自定义字段功能及对应的开放接口

前言

该解决方案是供有产研能力的厂商快速接入小蓝本拓客系统而提供的解决方案。

在接入前,需要联系客户经理开通相应的权限,进入分销系统配置后才能正确启用。

术语定义

术语 描述
分销商 表明你与小蓝本商务合作关系
客户 即你在小蓝本系统上开通过功能的客户
总客户数 你的客户在小蓝本上开通使用1年,即占用一个客户许可数。总客户数即你可授权的客户许可总量
可用客户数 你的总客户数减去你已授权使用的客户许可总数
总账号数 你的客户使用拓客系统的人数,每个人每个客户许可期算一个账号数。总账号数即总的可授权的账号总量
可用账号数 你的总账号数减去已授权使用的账号数
总解锁量 你的每个客户解锁查看每个企业信息,即会扣减一个解锁量。总解锁量即你可分配给你的客户的解锁量总和
可用解锁量 你的总解锁量减去已分配的解锁量

分销管理系统

使用系统配置的管理员账号登录https://oem.pi51.cn/index.html系统操作

简化操作流程

1、登录分销商平台 https://oem.pi51.cn/index.html

2、设置好回调的URL、LOGO等配置

3、创建客户

4、获取跳转登录系统的完整URL,操作解锁

API接口

前置说明

以下接口的功能均与分销商平台功能一至

所有接口均是由你的服务端发起的http调用,接口响应按标准的restful风格,请求体与响应体如有的,均为json格式

所有的请求头需要包含accessId及accessToken

accessId即你在分销系统的唯一ID,请向客户经理索取

accessToken即你在分销系统中的接口调用配置值

请求的基础URL为: https://api.xiaolanben.com

标准curl示例

curl -X POST --header 'Content-Type: application/json' --header 'accessToken: 你的token' --header 'accessId: 你的id' -d '{ \ 
   "accountNum": 5, \ 
   "authYears": 1, \ 
   "customerName": "测试客户", \ 
   "enableDate": "2022-10-19", \ 
   "unlockNum": 100 \ 
 }' 'https://api.xiaolanben.com/blue-crm/api/v1/open/oem/system/customer'

系统使用标准的restful风格;所有的错误均以>=400的http状态码返回;具体的错误内容会在响应体中返回

{"trackingId":"我是问题反馈的跟踪ID","errors":[{"code":我是int错误码,"message":"我是错误原因"}]}
如:
{"trackingId":"55fbef73-2cd2-4a13-ad4a-73ba78879a29","errors":[{"code":400,"message":"请输入正确的时间"}]}

获取操作日志

GET /blue-crm/api/v1/open/oem/system/logs

入参

参数名 数据类型 数据域 备注
operateType INT query 操作类型 可空; 全部不传参数/0系统/1客户消耗/2账号消耗/3解锁量消耗
startDate STRING query 时间范围-开始 可空;格式为yyyy-MM-dd
endDate STRING query 时间范围-结束 可空;格式为yyyy-MM-dd
pageIndex INT query 页面索引,从1开始
pageSize INT query 页面大小,2~100

出参

JSON响应体

参数名 数据类型 备注
pageIndex INT 请求时的页面索引号
pageSize INT 请求时的页面大小
totalCount LONG 总记录数
data 数组 日志数据数组
–id LONG 日志ID
–logTime STRING 日志时间yyyy-MM-dd HH:mm:ss格式
–operateType STRING 操作类型,系统、客户消耗等
–content STRING 操作内容
–consumeNum INT 数量
–customerName STRING 客户名称
–customerId INT 客户ID
–operatorName STRING 操作人姓名

获取客户列表

GET /blue-crm/api/v1/open/oem/system/customers

入参

参数名 数据类型 数据域 备注
customerName STRING query 客户名称 可空
startDate STRING query 时间范围-开始 可空;格式为yyyy-MM-dd
endDate STRING query 时间范围-结束 可空;格式为yyyy-MM-dd
customerStatus STRING query 客户状态 可空; 全部ALL/未生效INEFFECTIVE/有效VALID/已过期EXPIRED
pageIndex INT query 页面索引,从1开始
pageSize INT query 页面大小,2~100

出参

参数名 数据类型 备注
pageIndex INT 请求时的页面索引号
pageSize INT 请求时的页面大小
totalCount LONG 总记录数
data 数组 数据数组
–customerId INT 客户ID
–customerName STRING 客户名称
–accountNum INT 有效账号数
–unlockNum INT 总解锁量
–availableUnlockNum INT 可用解锁量
–unlockLimit INT 每日每人可解锁企业数量限制
–enableDate STRING 启用时间 yyyy-MM-dd
–expireDate STRING 有效期至yyyy-MM-dd
–gmt51Create STRING 创建时间yyyy-MM-dd HH:mm:ss
–status INT 状态,1有效/2已过期/10已删除
–statusDesc STRING 状态描述

创建客户

POST/blue-crm/api/v1/open/oem/system/customer

入参

参数名 数据类型 数据域 备注
customerName STRING body 客户名称 2~50个字符
accountNum INT body 购买账号数 0~20000之间
unlockNum INT body 购买解锁量 0~5000万之间
enableDate STRING body 启用时间;yyyy-MM-dd格式,必须介于10天内的日期
authYears INT body 授权年数;1~10之间

出参

参数名 数据类型 备注
customerId INT 新创建的客户ID
usedCustomerNum INT 本次消耗客户数
availableCustomerNum INT 剩余可用客户数
usedAccountNum INT 本次消耗账户数
availableAccountNum INT 剩余可用账号数
usedUnlockNum INT 本次消耗解锁量数
availableUnlockNum INT 剩余可用解锁量

编辑客户名称

PUT/blue-crm/api/v1/open/oem/system/customer/{customerId}

入参

参数名 数据类型 数据域 备注
customerId INT path 客户标识ID
customerName STRING body 客户名称 2~50个字符

出参

获取客户详情

GET/blue-crm/api/v1/open/oem/system/{customerId}/detail

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID

出参

参数名 数据类型 备注
customerId INT 客户标识
customerName STRING 客户名称
accountNum INT 有效账号数
unlockNum INT 总解锁量
availableUnlockNum INT 可用解锁量
unlockLimit INT 默认每日每人可解锁企业数量限制–已弃用,请使用dailyLimit/monthlyLimit/totalLimit
dailyLimit INT 每日每人可解锁企业数量限制
monthlyLimit INT 每月每人可解锁企业数量限制
totalLimit INT 总的每人可解锁企业数量限制
enableDate STRING 启用时间yyyy-MM-dd
expireDate STRING 有效期至yyyy-MM-dd
gmt51Create STRING 创建时间yyyy-MM-dd HH:mm:ss
status INT 状态,0未生效/1有效/2已过期/10已删除
statusDesc STRING 状态描述

获取客户日志

GET/blue-crm/api/v1/open/oem/system/{customerId}/logs

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
operateType INT query 操作类型 可空;全部不传/0系统/1客户/2账号/3解锁量
startDate STRING query 开始时间 可空;yyyy-MM-dd
endDate STRING query 结束时间 可空;yyyy-MM-dd
pageIndex INT query 页面索引从1开始
pageSize INT query 页面大小;介于2~100

出参

参数名 数据类型 备注
pageIndex INT 请求时的页面索引号
pageSize INT 请求时的页面大小
totalCount LONG 总记录数据
data 数组 数据列表
–id LONG 记录ID
–logTime STRING 日志时间 yyyy-MM-dd HH:mm:ss
–operateType STRING 操作类型:创建账户/增购/续期等
–content STRING 操作内容
–consumeNum INT 消耗对应类型的数量值
–customerName STRING 客户名称
–customerId INT 客户标识
–operatorName STRING 操作人姓名

客户增购–前置check

PUT/blue-crm/api/v1/open/oem/system/{customerId}/addPurchase/preCheck

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
accountNum INT body 增购的账号数 0~2000
unlockNum INT body 增购的解锁量0~1000万

出参

参数名 数据类型 备注
crossYears INT 跨年度数;需要扣减的账号数=增购账号数*年数
availableAccountNum INT 可用账号数
useAccountNum INT 本次将会消耗账户数
availableUnlockNum INT 可用解锁量
useUnlockNum INT 本次将会消耗解锁量数

客户增购

PUT/blue-crm/api/v1/open/oem/system/{customerId}/addPurchase

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
accountNum INT body 增购的账号数 0~2000
unlockNum INT body 增购的解锁量0~1000万

出参

参数名 数据类型 备注
usedAccountNum INT 本次消耗账户数
availableAccountNum INT 剩余可用账号数
usedUnlockNum INT 本次消耗解锁量数
availableUnlockNum INT 剩余可用解锁量

客户续期–前置check

PUT/blue-crm/api/v1/open/oem/system/{customerId}/renewal/preCheck

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
renewalYears INT body 续期的年数 1~10
accountNum INT body 请输入续期账号数;该值需介于0~1000之间

出参

参数名 数据类型 备注
expireDate STRING 有效期至 yyyy-MM-dd
availableCustomerNum INT 可用客户数
useCustomerNum INT 本次将消耗客户数
availableAccountNum INT 可用账号数
useAccountNum INT 本次将消耗账号数

客户续期

PUT/blue-crm/api/v1/open/oem/system/{customerId}/renewal

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
renewalYears INT body 续期的年数 1~10
accountNum INT body 请输入续期账号数;该值需介于0~1000之间

出参

参数名 数据类型 备注
expireDate STRING 有效期至 yyyy-MM-dd
usedCustomerNum INT 本次消耗客户数
availableCustomerNum INT 剩余的可用客户数
usedAccountNum INT 本次消耗账号数
availableAccountNum INT 剩余的可用账号数

设置客户默认每日解锁量限制

PUT /blue-crm/api/v1/open/oem/system/{customerId}/unlockLimit

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
unlockLimit INT body 每日解锁量,介于0~50万;已弃用,请使用dailyLimit
dailyLimit INT body 每日解锁量,介于0~50万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值
monthlyLimit INT body 每月解锁量,介于0~50万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值
totalLimit INT body 总解锁量,介于0~1000万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值

出参

无, 响应码204

获取客户指定人员每日解锁量限制

该规则优先于默认规则,如在多条人员规则中都相同的账号,则会按修改时间倒序取

GET /blue-crm/api/v1/open/oem/system/{customerId}/account/unlockLimit

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID

出参

参数名 数据类型 备注
  数组 响应体为数组格式
–id LONG 记录标识
–accounts MAP<INT, STRING> 账号ID与姓名的对照表{101:”张三”,102:”李四”}
–total INT 每日限制上限,已弃用,值同dailyLimit
–dailyLimit INT 每日限制上限
–monthlyLimit INT 每月限制上限
–totalLimit INT 总限制上限
–gmt51Modify STRING 最后修改时间

创建设置指定客户按人员配置的解锁量限制规则

POST /blue-crm/api/v1/open/oem/system/{customerId}/account/unlockLimit

注意:规则总数不能超过20条

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
accountIds ARRAY<INT> body 账号ID数组
limit INT body 限制 最小为0;已弃用,请使用dailyLimit
dailyLimit INT body 每日解锁量,介于0~50万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值
monthlyLimit INT body 每月解锁量,介于0~50万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值
totalLimit INT body 总解锁量,介于0~1000万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值
confirmAdd BOOL body 空值或者false,在保存时会校验本次添加的人员是否在其它
规则中已存在,如果存在,则会响应http状态码409;
如果为true,则系统会自动将冲突人员从其它规则中移除,
应用本次添加的规则

出参

参数名 数据类型 备注
id LONG 记录标识
accounts MAP<INT, STRING> 账号ID与姓名的对照表{101:”张三”,102:”李四”}
total INT 每日限制上限,已弃用,请使用dailyLimit
dailyLimit INT 每日限制上限
monthlyLimit INT 每月限制上限
totalLimit INT 总限制上限
gmt51Modify STRING 最后修改时间

修改设置指定客户按人员配置的解锁量限制规则

PUT /blue-crm/api/v1/open/oem/system/{customerId}/account/unlockLimit/{id}

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
id LONG path 规则记录的标识ID
accountIds ARRAY<INT> body 账号ID数组
limit INT body 限制 最小为0;已弃用,请使用dailyLimit
dailyLimit INT body 每日解锁量,介于0~50万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值
monthlyLimit INT body 每月解锁量,介于0~50万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值
totalLimit INT body 总解锁量,介于0~1000万; 可空,但dailyLimit/monthlyLimit/totalLimit必须至少有一个值
confirmAdd BOOL body 空值或者false,在保存时会校验本次添加的人员是否在其它
规则中已存在,如果存在,则会响应http状态码409;
如果为true,则系统会自动将冲突人员从其它规则中移除,
应用本次更新的规则

出参

参数名 数据类型 备注
id LONG 记录标识
accounts MAP<INT, STRING> 账号ID与姓名的对照表{101:”张三”,102:”李四”}
total INT 每日限制上限,已弃用,请使用dailyLimit
dailyLimit INT 每日限制上限
monthlyLimit INT 每月限制上限
totalLimit INT 总限制上限
gmt51Modify STRING 最后修改时间

删除设置指定客户按人员配置的解锁量限制规则

DELETE /blue-crm/api/v1/open/oem/system/{customerId}/account/unlockLimit/{id}

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
id LONG path 规则记录的标识ID

出参

无,响应码为204

获取生效中及待生效的账号数记录

GETGET/blue-crm/api/v1/open/oem/system/{customerId}/authLimit

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID

出参

参数 名 数据类型 备注
该响应体为数组 数组  
id LONG 数据ID
effectiveTime STRING 生效时间
expireTime STRING 有效截止时间
limitValue STRING 账号数
status STRING 状态

获取有权限的客户账号列表

GET/blue-crm/api/v1/open/oem/system/{customerId}/validAccounts

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
keyword STRING query 支持姓名或完整手机号搜索
pageIndex INT query 页面索引从1开始
pageSize INT query 页面大小介于2~100

出参

参数名 数据类型 备注
pageIndex INT 请求页面索引
pageSize INT 请求页面大小
totalCount LONG 总记录数
data 数组 数据列表
–accountId INT 账号ID
–accountName STRING 账号名称
–accountMobile STRING 账号手机号

删除指定客户的指定账号

DELETE/blue-crm/api/v1/open/oem/system/{customerId}/account/{accountId}

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
accountId INT path 账号标识ID

出参

无;响应码204

创建并设置指定客户账号

POST/blue-crm/api/v1/open/oem/system/{customerId}/account

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
accountName STRING body 账号名称-一般用人姓名 1~10个字
accountMobile STRING body 账号手机号 一定是手机号

出参

参数名 数据类型 备注
accountId INT 账号标识ID

编辑指定客户账号的名称

PUT/blue-crm/api/v1/open/oem/system/{customerId}/account/{accountId}

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
accountId INT path 账号的标识ID
accountName STRING body 账号名称-一般用人姓名 1~10个字

出参

获取指定客户的解锁列表分组

GET /blue-crm/api/v1/open/oem/system/{customerId}/unlockTags

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID

出参

参数名 数据类型 备注
id LONG 记录标识
dictKey STRING 分组的key标识
dictName STRING 分组的名称
dictDesc STRING 分组的描述
orderNo STRING 排序序号
extData JSON 扩展数据 暂不用关心

新建指定客户的解锁列表分组

POST /blue-crm/api/v1/open/oem/system/{customerId}/unlockTag

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
dictName STRING body 分组的名称
dictDesc STRING body 分组的描述

出参

无,响应http码204

编辑指定客户的解锁列表分组

PUT /blue-crm/api/v1/open/oem/system/{customerId}/unlockTag/{id}

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
id LONG path 分组记录标识ID
dictName STRING body 分组的名称
dictDesc STRING body 分组的描述

出参

无,响应http码204

删除指定客户的解锁列表分组

DELETE /blue-crm/api/v1/open/oem/system/{customerId}/unlockTag/{id}

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
id LONG path 分组记录标识ID

出参

无,响应http码204

配置指定客户的数据回调地址

当特定的客户数据回调时需要回调至非统一配置的接口时,使用该接口配置;(统一回调地址由https://oem.pi51.cn/#/oem/admin/setCallback

PUT/blue-crm/api/v1/open/oem/system/{customerId}/callbackUrl

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
url STRING body 指定的URL地址;如果要使用回统一回调地址的,则该值设置为0长度字符串

出参

无,响应http码204

获取企业回传自定义字段列表

GET /blue-crm/api/v1/open/oem/system/customize/column/list/{source}

入参

参数名 数据类型 数据域 备注
source STRING path 固定为oemEntData

出参

参数名 数据类型 备注
数据 ARRAY 自定义列数组
id LONG 记录标识
source STRING 固定为oemEntData
apiName STRING 字段标识名,如:text_1
columnName STRING 字段名称,如:数据用途
isSysColumn INT 是否是系统字段,当前全部为0非系统字段
columnType STRING 字段类型,text/textArea/checkBox/radio/date/bool
reqFlag STRING 是否必填,0为必填
status INT 状态,0启用/1禁用
columnHint STRING 输入提示,仅text/textArea有效
minLength INT 最小输入长度,仅text/textArea有效
maxLength INT 最长输入长度,仅text/textArea有效。不得超过500
dateFormartType STRING 日期输入格式,仅date有效
optionItems 对象 在checkBox/radio/bool时,对应的内容描述
–def STRING 默认选项值
–options 数组 具体选项数组
—-label STRING 选项显示值
—-value STRING 选项值

 

 

新增企业回传自定义字段

PUT /blue-crm/api/v1/open/oem/system/customize/column

入参

参数名 数据类型 数据域 备注
source STRING body 固定为oemEntData
columnName STRING body 字段名称,如:数据用途
isSysColumn INT body 是否是系统字段,当前全部为0非系统字段
columnType STRING body 字段类型,text/textArea/checkBox/radio/date/bool
reqFlag STRING body 是否必填,0为必填
status INT body 状态,0启用/1禁用
columnHint STRING body 输入提示,仅text/textArea有效
minLength INT body 最小输入长度,仅text/textArea有效
maxLength INT body 最长输入长度,仅text/textArea有效。不得超过500
dateFormartType STRING body 日期输入格式,仅date有效
optionItems 对象 body 在checkBox/radio/bool时,对应的内容描述
–def STRING body 默认选项值
–options 数组 body 具体选项数组
—-label STRING body 选项显示值
—-value STRING body 选项值

 

出参

参数名 数据类型 备注
id LONG 记录标识
apiName STRING 字段标识名,如:text_1
columnName STRING 字段名称,如:数据用途
isSysColumn INT 是否是系统字段,当前全部为0非系统字段
columnType STRING 字段类型,text/textArea/checkBox/radio/date/bool
reqFlag STRING 是否必填,0为必填
status INT 状态,0启用/1禁用
columnHint STRING 输入提示,仅text/textArea有效
minLength INT 最小输入长度,仅text/textArea有效
maxLength INT 最长输入长度,仅text/textArea有效。不得超过500
dateFormartType STRING 日期输入格式,仅date有效
optionItems 对象 在checkBox/radio/bool时,对应的内容描述
–def STRING 默认选项值
–options 数组 具体选项数组
—-label STRING 选项显示值
—-value STRING 选项值

 

编辑企业回传自定义字段

POST /blue-crm/api/v1/open/oem/system/customize/column/{id}

入参

参数名 数据类型 数据域 备注
id LONG path 要编辑的自定义字段标识
source STRING body 固定为oemEntData
columnName STRING body 字段名称,如:数据用途
isSysColumn INT body 是否是系统字段,当前全部为0非系统字段
columnType STRING body 字段类型,text/textArea/checkBox/radio/date/bool
reqFlag STRING body 是否必填,0为必填
status INT body 状态,0启用/1禁用
columnHint STRING body 输入提示,仅text/textArea有效
minLength INT body 最小输入长度,仅text/textArea有效
maxLength INT body 最长输入长度,仅text/textArea有效。不得超过500
dateFormartType STRING body 日期输入格式,仅date有效
optionItems 对象 body 在checkBox/radio/bool时,对应的内容描述
–def STRING body 默认选项值
–options 数组 body 具体选项数组
—-label STRING body 选项显示值
—-value STRING body 选项值

 

出参

无,响应http码204

 

删除企业回传自定义字段

DELETE /blue-crm/api/v1/open/oem/system/customize/column/{id}

入参

参数名 数据类型 数据域 备注
id LONG path 要删除的自定义字段标识

 

出参

无,响应http码204

企业回传自定义字段排序

POST /blue-crm/api/v1/open/oem/system/customize/column/sort

入参

参数名 数据类型 数据域 备注
source STRING query 固定为oemEntData
数组 ARRAY body 按顺序排序的自定义字段标识,如:[2,3,1]
  LONG body 自定义字段标识

 

出参

无,响应http码204

获取跳转登录系统的完整URL

POST/blue-crm/api/v1/open/oem/system/{customerId}/getLoginUrl

入参

参数名 数据类型 数据域 备注
customerId INT path 客户的标识ID
createAccount STRING body 登录同时否自动创建账号 1为当手机号未创建过账号时自动创建 0不创建
accountMobile STRING body 账号手机号
accountName STRNG body 账号名称-一般用人姓名; 当未输入并且自动创建账号时,取手机号末尾4位
returnUrl STRING body 非必传。在拓客系统用户免登登录超时或失败时,系统会自动回跳转回该URL(需要符合URL标准格式)
customDomain STRING body 非必传。如果在小蓝本配置过自定义域名的,则可以传入该域名(需要符合URL标准格式)。如:https://leads.pi51.cn
appCategory INT body 非必传,在未传入customDomain有效。如果您开通了多个版本的拓客,则可以通过该值控制想要的版本路径。0通过版/2金融版/3财税版/4会展版/5招商版
routing STRING body 非必传。页面路由,不能带#符,具体参考小蓝本官方拓客页路由。如:/newUser/search/companySearch  或  /newUser/company?eid=q94e84a8422fc4aeb98d387145ccc4f68
noHead BOOL body 非必传。有路由时有效。如果传入true,则不显示拓客页面头部信息
noMenu BOOL body 非必传。有路由时有效。如果传入true,则不显示页面左侧菜单信息

出参

参数名 数据类型 备注
accountId INT 账号标识ID
url STRING 终端获客用户操作的平台URL

接口回调

该系列接口由分销商提供接收的URL,小蓝本以POST JSON方式向该URL发送数据,分销商在处理成功后响应JSON

所有接口调用超时时长固定为3秒,如果超过3秒未响应,拓客系统则会当成默认处理

数据签名

由小蓝本发送来的数据,在请求的url路径后,会自动追加签名参数data_sign

该签名参数是直接对发送请求的body块字符串进行RSA加签,收到后可以通过RSA的公钥进行验证

RSA签名算法为SHA1WithRSA

RSA签名验证公钥base64编码为

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrYYOJGFKnXyILiSlXdD2vLGbwfEZz3nynNe066y1SCLI1MTDzRRgfdgMVTmPr95uu4nE3iE5O145RzeNF47UUMuYqBsKP9kjc+0qHdM2d90S3NBuL4U1nSkWnxb4Nq/nGpnQ/ItglSJaf4ejLQEEsImPPCyXDDrHqEuIltffkzwIDAQAB
JAVA代码
import java.security.Signature;
import java.security.SignatureException;
import java.nio.charset.Charset;
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;
import org.apache.commons.codec.binary.Base64;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
import java.security.KeyFactory;


public class RSAUtils {
    private static final String RSA_SIGNATURE_ALGORITHM = "SHA1WithRSA";
    private static final String RSA_ALGORITHM = "RSA";

    /**
     * RSA验签
     *
     * @param content    待验签的内容-取自body块原文
     * @param base64Sign base64待验的签名
     * @param publicKey  验签使用的base公钥
     * @param charset    字符集 固定UTF-8
     * @return 返回验签结果
     */
    public static boolean rsaCheck(String content, String base64Sign, String base64Key, Charset charset)
        throws NoSuchAlgorithmException, InvalidKeyException, SignatureException {
        byte[] keyBytes = Base64.decodeBase64(base64Key);
        X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
        KeyFactory keyFactory = KeyFactory.getInstance(RSA_ALGORITHM);
        PublicKey publicKey = keyFactory.generatePublic(keySpec);
        Signature signature = Signature.getInstance(RSA_SIGNATURE_ALGORITHM);
        signature.initVerify(publicKey);
        signature.update(content.getBytes(charset));

        return signature.verify(Base64.decodeBase64(base64Sign.getBytes(charset)));
    }
}
PHP示例
<?php
function rsaCheck($content, $base64Sign, $base64Key) {
    $base64Key="-----BEGIN PUBLIC KEY-----\n".$base64Key."\n-----END PUBLIC KEY-----\n";
    $res = openssl_pkey_get_public($base64Key);
    $detail = openssl_pkey_get_details($res);
    $pkey= $detail['key'];
    $sign=base64_decode($base64Sign);
    return openssl_verify($content, $sign, $pkey);
}
?>

自定义按钮点击回调接口

当终端操作用户在 找企业、地图拓客 等模块,点击自定义的按钮后,则立即触发该接口回调逻辑

如果回调失败,则会直接提示终端操作用户错误信息

当一次圈选大批次数据时,系统内部自动分成400条记录一个子批次进行回调,因此,终端用户点击一次,你可能会收到很多次回调数据

请求参数

参数名 数据类型 数据域 备注
data_sign STRING query 数据信息体的签名
total_cnt INT query 多批次时,预期回传的总企业数;注:不参与签名
source_page STRING query 用户点击请求时的页面路由;注:不参与签名
batchNo STRING body 批次号,如果一个点击拆分成多次回调,则批次号会是xxxxx-123样式
customerId INT body 客户ID
accountId INT body 操作者的账号ID
buttonId STRING body 点击按键的标识ID,由自定义按键处定义
queryJson STRING body 用户查询企业数据时的原始条件内容;如需解析,则需要根据source_page处理
customizeField MAP body 当有自定义字段时,则会回传用户输入的内容。如{“text_1″:”123”}
remark STRNG body 添加到OEM弹层用户输入的备注字段
entList 数组 body 回调的企业列表
–eid STRING body 企业唯一标识
–name STRING body 企业名称
–brand STRING body 企业品牌
–logo STRING body 企业logo
–contactWayNum INT body 联系人数
–shortName STRING body 企业简称
–companyFrName STRING body 法人名称
–rank DOUBLE body 实力值(小蓝本自有算法值)
–esdate STRING body 成立日期
–companyStatusName STRING body 企业状态名称
–phoneCnt STRING body 活跃手机号数目, 可能会显示为12个,如果没有可能为–
–kpPhoneCnt STRING body 活跃KP手机号数
–companyFrPid STRING body 公司法人pid
–stockCode STRING body 股票代码
–stockShortname STRING body 股票简称
–regcap DOUBLE body 注册资本
–ssNum INT body 参保人数
–status INT body 状态
–regArea STRING body 注册地
–capTypeName STRING body 资本类型
–regGroupName STRING body 所属集团,小蓝本算法值
–acConam DOUBLE body 实缴资本
–areas 字符串数组 body 所属省市区 如 [“浙江”, “杭州市”, “西湖区”]
–industryphyName STRING body 所属行业
–esage INT body 成立年限
–investAmount DOUBLE body 对外投资
–listingDateLatest STRING body 上市日期 yyyy-MM-dd
–opscope STRING body 经营范围
–roundStage STRING body 融资阶段
–regDes STRING body 企业简介
–emails 字符串数组 body 邮箱 如 [“12345@qq.com”, “12343@163.com”]
–regCapCurName STRING body 注册资本币别
–website STRING body 网站, 多个时仅返回第一个
–orgTypeName1 STRING body 机构类型 二级分类第1层
–orgTypeName2 STRING body 机构类型 二级分类第2层
–ecoTypeName1 STRING body 经济类型 二级分类第1层
–ecoTypeName2 STRING body 经济类型 二级分类第2层
–contactList 数组 body 联系人列表
—-pid STRING body 联系人标识ID
—-name STRING body 联系人名称
—-dept STRING body 部门
—-position STRING body 职位
—-phone STRING body 手机
—-tel STRING body 固话
—-email STRING body email
—-logo STRING body logo
—-source STRING body 号码来源字段,注该字段为一个复杂的JSON结构[{“groupName”:”B2B”,”sources”:[{“name”:”xxx”,”url”:”url”}]}]
—-isKp BOOL body 是否是KP
—-eidCount INT body 同一个联系方式的企业数

响应体格式

响应体仅支持JSON格式

字段名 数据类型 备注
success BOOL 如果处理成功则返回true;如果处理失败则返回false; 如果返回的是false,在分批次时,则会中断后续的任务
successNum INT 处理成功的企业记录数
failedNum INT 处理时过滤忽略处理的企业记录数,如该企业已经被另外一个员工占有时
successContactNum INT 处理成功的联系人数
message STRING 处理成功或失败的提示消息

请求体示例

{"batchNo":"586b3d05-d44b-4adf-abeb-b196ccf88aa0","customerId":24465,"accountId":19627,"buttonId":"dounlock","entList":[{"eid":"q94e84a8422fc4aeb98d387145ccc4f68","name":"深圳小蓝本网络技术有限公司","creditCode":"91330106MA2GMFHK8L","brand":"小蓝本","logo":"https://pic.u51.com/sfs-gateway/api/v1/download/ff1fbd4e73bd4141b16b3be9953d512a4c71","contactWayNum":5,"shortName":"小蓝本","companyFrName":"吴炜清","rank":20000.0,"esdate":"2019-05-21","companyStatusName":"在营","phoneCnt":"-","kpPhoneCnt":"-","companyFrPid":"p_b9debd5ea28c64836182a5ef16ae6063","stockCode":null,"stockShortname":null,"regcap":1580.2466,"ssNum":0,"status":3,"regArea":"深圳市福田区梅林街道孖岭社区凯丰路10号翠林大厦8层807P","capTypeName":"私营企业","regGroupName":"51信用卡","acConam":1505.2466,"areas":["广东","深圳市","福田区"],"industryphyName":"信息传输、软件和信息技术服务业","esage":5,"investAmount":null,"listingDateLatest":null,"opscope":"服务:网络信息技术、计算机软硬件、通信技术的技术开发、技术咨询、技术服务、成果转让,计算机软硬件的维修(限现场,涉及资质证凭证经营),企业管理咨询,市场调查,经济信息咨询(除商品中介)。(以上法律、行政法规、国务院决定禁止的项目除外,限制的项目须取得许可后方可经营,依法须经批准的项目,经相关部门批准后方可开展经营活动)^对企业的信用信息进行采集、整理、保存、加工,企业征信服务,企业信用评估咨询,第二类增值电信业务中的信息服务业务。","roundStage":"战略投资","regDes":"小蓝本是一个企业信息、商业信息资讯查询软件,方便用户实时查询企业相关的股东、股权结构、法定代表人、企业对外投资信息、企业诉讼、商标和专利信息、产品业务、品牌项目、投融资信息等等。杭州蓝页网络技术有限公司旗下产品。","emails":["51_gongshang@u51.com"],"regCapCurName":"人民币","website":"www.xiaolanben.com","orgTypeName1":"有限责任公司","orgTypeName2":"其他有限责任公司","ecoTypeName1":"民营企业","ecoTypeName2":null,"contactList":[{"pid":"p_mo6de4a5e90770c0e058059f3a4ce2d3d1","name":null,"dept":null,"position":null,"phone":"18968121369","tel":null,"email":null,"logo":null,"source":"[{\"sort\":15,\"groupName\":\"年报\",\"sources\":[{\"name\":\"2023年报\",\"url\":\"\"}]}]","isKp":false,"eidCount":101}]}],"remark":null}

企业列表及主页增加数据归属人信息,及显示电话图标

该接口可以不提供,回调地址需要单独配置

该接口用于在企业列表及企业主页上显示已归属该企业信息的人员信息;如 已被张三添加客户、已存在客户公海等文案;如果未响应文案,则不会显示

请求参数

参数名 数据类型 数据域 备注
data_sign STRING query 数据签名
customerId INT body 客户ID
accountId INT body 操作者的账号ID
dataType STRING body 数据类型:固定企业ent
dataIds ARRAY<STRING> body 数组,暂只支持eid

响应体格式

响应体仅支持JSON格式

字段名 数据类型 备注
数组 数组 响应数据为JSON数组
–dataId STRING 数据标识。暂只支持eid
–mainTip STRING 主提示内容,如:已存在于客户公海 / 已被张三添加
–subTip STRING 次提示内容,如:可以领取 / 不可添加
–callMobileIcon BOOL 是否显示手机号右边的电话样式icon,如果为true则显示,否则不显示; 仅在已解锁企业有效
–callTelIcon BOOL 是否显示固话右边的电话样式icon,如果为true则显示,否则不显示; 仅在已解锁企业有效

点击手机号/固话右边的电话icon时回调

该接口可以不提供。回调地址需要单独配置

当上面的接口响应支持呼叫图标并且该企业已解锁时,用户点击呼叫按钮后,系统触发该回调接口

请求参数

参数名 数据类型 数据域 备注
data_sign STRING query 数据签名
customerId INT body 客户ID
accountId INT body 操作者的账号ID
eid STRING body 企业唯一标识
entName STRING body 企业名称
pid STRING body 联系人标识ID
name STRING body 联系人名称
dept STRING body 部门
position STRING body 职位
phone STRING body 点击的电话号码。手机号/固话
logo STRING body 联系人logo

响应体格式

响应体仅支持JSON格式

字段名 数据类型 备注
success BOOL 如果成功则返回true; 否则为false
failedMsg STRING 出错时的响应提示内容,如果未响应则会默认『系统忙,请稍候再试』

页面内嵌方案

在用户获取到的免登链接打开的拓客页面,系统支持增加参数方式,嵌入到内部系统中

nohead=1 则会不显示页面头

nomenu=1 则不会显示页面菜单

该两个参数以&nohead=1&nomenu=1方式追加至免登链接中

如果想直接跳转至指定页时,需要在获取到的免登链接中,将目标页面的路由添加到URL中

如:高级搜索页,则是https://leads.pi51.cn/#/newUser/advancedSearch?login_id=xxx&login_key=xxxx&login_sign=xxxx&return_url=xxxx

注:同时内嵌的ifream需要设置定位权限allow-geolocation等。如<iframe src=”example.com” sandbox=”allow-downloads allow-geolocation allow-forms allow-scripts allow-popups allow-same-origin”></iframe>