云鼎隐私保护平台接入指引
1、接入流程
1.1入驻云鼎平台
云鼎平台网址:https://yd.jdcloud.com/#/ 点击入驻云鼎,如已有账号则不需注册。

选择入驻身份为:零售,点击立即入驻,并填写相关资料

1.2、申请开通服务
控制台地址:http://yd-security-number-console.jdcloud.com/
首次使用向平台申请开通服务,请填写联系人姓名、电话、使用场景描述,运营人员3个工作日内审核完成。

概览页

2、应用管理
2.1、应用列表
点击”应用管理“按钮可查看所有应用信息,点击”详情“按钮可查看应用详细信息。

2.2、创建应用
点击”创建应用“按钮

选择业务域(入驻云鼎得业务域)、应用类型选择”隐私号系统“、选择一个Access_key,如没有需提前创建https://uc.jdcloud.com/account/accesskey

3、场景管理
3.1、场景列表
点击”场景管理“按钮可查看所有场景信息

3.2、申请接入
点击”申请接入“按钮,选择上一步创建的应用点”确认“
注:这里具体选择接入哪个场景需和云鼎平台沟通确认

3.3、我的场景
点击”我的场景“按钮可查看所有接入的场景,点”详情“按钮可查看具体的接入信息

3.4、场景详情
进入场景详情页面可查看基础信息,点”测试业务“切换到申请上线页面,点击”申请上线“填写上线信息
注:回调地址需要填写http或https开头的能够访问到的服务地址,虎符网关透传请求时,会在回调地址的基础上自动添加api的path。
例如回调地址配置的是http://test.com,接口path为/test,虎符网关透传请求时实际的回调地址为http://test.com/test。

填写回调地址信息,点击”确认“

平台审核通过后会分配 customerId ,改参数作为后续调用接口的必要系统参数

至此接入流程完毕。
4、接口文档
Java SDK Demo 点击下载
4.1、相关术语
4.1.1、接口类型
正向接口:需要商家系统实现的接口,云鼎官方系统调用 反向接口:需要云鼎官方系统实现的接口,商家系统调用
| 场景名称 | 接口类型 | 接口名称 | 接口描述 |
|---|---|---|---|
| 云鼎安全号平台 | 反向接口 | jingdong.hufu.securitynumber.bind95ByJDOrderId | 根据京东订单号绑定95安全号(调用此接口需单独申请权限)。 |
| 云鼎安全号平台 | 反向接口 | jingdong.hufu.securitynumber.bindAXByJDOrderId | 根据京东订单号绑定AX号码(调用此接口需单独申请权限,该接口尚未发布暂时不可调用)。 |
| 云鼎安全号平台 | 反向接口 | jingdong.hufu.securitynumber.bind | 基础绑定接口(可支持绑定95号和axe号码) |
| 云鼎安全号平台 | 反向接口 | jingdong.hufu.securitynumber.unBind | 解绑接口 |
| 云鼎安全号平台 | 反向接口 | jingdong.hufu.securitynumber.renewal | 续期接口 |
| 物流隐私标推送 | 正向接口 | jingdong.hufu.securitynumber.push | 物流隐私标推送接口 |
| 运单号推送 | 正向接口 | jingdong.hufu.securitynumber.pushWaybillNo | 推送运单号,用于快递柜、驿站取件短信代发 |
4.1.2、前端授权
客户端调用虎符网关需要传入“sign”参数,虎符网关计算签名是否正确,用于校验调用者身份。
4.1.3、后端签名
虎符网关将请求透传到后端服务时会重新计算“sign”值,如果后端服务需要校验虎符网关的身份是否合法,可以使用相同的算法计算“sign”值,用于校验虎符网关身份。
4.1.4、虎符签名算法
前端授权、后端签名均使用该算法计算,可以通过虎符控制台验证签名计算是否正确 http://hufu-yd-console.jdcloud.com/#/hufu/signtool 示例:
http://hufu.cn-north-1.jdcloud-api.net?app_key=XXXXXXXXXXXXXXXXX&customerId=0100&method=jingdong.hufu.securitynumber.bind95ByJDOrderId&sign=917DE2C2258D6DDE20EB3D6F3ED364F3&sign_method=md5×tamp=2021-11-19 13:53:53&format=json&v=1.0
输入参数为(参数 URL Decode之后再计算签名) 注:参数列表中的sign不参与计算签名,除此之外所有参数都要参与计算签名
app_key=XXXXXXXXXXXXXXXXX
customerId=0100
format=json
method=jingdong.hufu.securitynumber.bind95ByJDOrderId
sign_method=md5
timestamp=2021-11-19 13:53:53
v=1.0
请求body为
{"orderId":252435442949,"expiration":"2022-11-30 17:59:59"}
按首字母升序排列
app_key=XXXXXXXXXXXXXXXXX
customerId=0100
format=json
method=jingdong.hufu.securitynumber.bind95ByJDOrderId
sign_method=md5
timestamp=2021-11-19 13:53:53
v=1.0
连接字符串: 连接参数名与参数值,body参数拼接在query参数后,并在首尾加上secret ,此处假设 secret=test ,如下:
testapp_keyXXXXXXXXXXXXXXXXXcustomerId0100methodjingdong.hufu.securitynumber.bind95ByJDOrderIdsign_methodmd5timestamp1621318983000{"orderId":252435442949,"expiration":"2022-11-30 17:59:59"}test
生成签名 sign: 32位大写 MD5 值-> 211E472XXXXXXXXXXXXX288F9F368
4.12、系统参数
4.2.1、公共请求参数
| 名称 | 类型 | 是否必需 | 描述 | |
|---|---|---|---|---|
| app_key | String | True | 虎符应用appKey | |
| customerId | String | True | 虎符业务编码 | |
| method | String | True | 虎符接口名称(jingdong.hufu.sms.logistics.getConsigneeInfo) | |
| sign_method | String | True | 签名算法(目前仅支持md5) | |
| timestamp | String | True | 时间戳(格式 2021-11-16 16:39:58) | |
| format | String | True | 报文格式 | (目前仅支持json) |
| v | String | True | API版本号(1.0) | |
| sign | String | True | 签名 |
4.2.2、公共响应信息
| 名称 | 类型 | 描述 |
|---|---|---|
| code | Integer | 错误状态码 |
| message | String | 错误消息 |
| data | Data | 返回结果 |
| requestId | String | 请求唯一标识 |
4.3、接口参数
4.3.1、jingdong.hufu.securitynumber.bind95ByJDOrderId
4.3.1.1、请求方式
POST
4.3.1.2、请求地址
https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.bind95ByJDOrderId&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx
4.3.1.3、请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| orderId | Long | True | 京东平台订单号 |
| expiration | String | True | 虚拟号到期时间(必须晚于当前时间1分钟以上。日期格式:"yyyy-MM-dd HH:mm:ss") |
4.3.1.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.bind95ByJDOrderId&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"orderId":252435442949,"expiration":"2022-11-30 17:59:59"}'
4.3.1.5、返回参数
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | String | 请求唯一标识 |
| data | Data |
返回结果 |
Data
| 名称 | 类型 | 描述 |
|---|---|---|
| bindId | String | 安全号绑定唯一标识 |
| secretNo | String | 安全号 |
| expiration | String | 安全号到期时间 |
4.3.1.6、响应示例
{
"code": 200,
"message": "success",
"requestId": null,
"data": {
"bindId": "1509496",
"secretNo": "95013xxx374",
"expiration": "2022-11-30 17:59:59"
}
}
4.3.2、jingdong.hufu.securitynumber.bind
4.3.2.1、请求方式
POST
4.3.2.2、请求地址
https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.bind&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx
4.3.2.3、请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| orderId | Long | True | 业务订单号 |
| expiration | String | True | 虚拟号到期时间(必须晚于当前时间1分钟以上。日期格式:"yyyy-MM-dd HH:mm:ss") |
| bindSource | Integer | True | 绑定类型(0:axe号码 1:95号码) |
| phoneNoA | String | True | 真实手机号 |
4.3.2.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.bind&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"orderId":"256373578288","expiration":"2022-11-29 20:00:00","bindSource":0,"phoneNoA":"188xxxxxx90"}'
4.3.2.5、返回参数
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | String | 请求唯一标识 |
| data | Data |
返回结果 |
Data
| 名称 | 类型 | 描述 |
|---|---|---|
| bindId | String | 安全号绑定唯一标识 |
| secretNo | String | 安全号 |
| extension | String | 分机号(axe模式专用) |
| expiration | String | 安全号到期时间(必须晚于当前时间1分钟以上。日期格式:"yyyy-MM-dd HH:mm:ss") |
| pin | String | 开发者pin |
| bindSource | Integer | 安全号类型 |
| orderId | String | 业务订单号 |
4.3.2.6、响应示例
{
"code": 200,
"message": "success",
"requestId": null,
"data": {
"pin": "ecop-053",
"orderId": "256373578288",
"bindId": "d4ca60f91bd54be0aa99e2cb273e8fe8",
"secretNo": "184xxxxxx89",
"extension": "2792",
"bindSource": 0,
"expiration": "2022-11-29 20:00:00"
}
}
4.3.3、jingdong.hufu.securitynumber.unBind
4.3.3.1、请求方式
POST
4.3.3.2、请求地址
https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.unBind&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx
4.3.3.3、请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| bindId | String | True | 安全号绑定唯一标识 |
4.3.3.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.unBind&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"bindId":"d4ca60f91bd54be0aa99e2cb273e8fe8"}'
4.3.3.5、返回参数
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | String | 请求唯一标识 |
| data | Data |
返回结果 |
Data
| 名称 | 类型 | 描述 |
|---|---|---|
| success | boolean | 是否解绑成功 |
4.3.3.6、响应示例
{
"code": 200,
"message": "success",
"requestId": "d4ca60f91bd54be0aa99e2cb273e8fe8",
"data": {
"success": true
}
}
4.3.4、jingdong.hufu.securitynumber.renewal
4.3.4.1、请求方式
POST
4.3.4.2、请求地址
https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.renewal&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx
4.3.4.3、请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| bindId | String | True | 安全号绑定唯一标识 |
| expiration | String | True | 安全号到期时间(必须晚于当前时间1分钟以上。日期格式:"yyyy-MM-dd HH:mm:ss") |
4.3.4.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.renewal&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"bindId":"d4ca60f91bd54be0aa99e2cb273e8fe8","expiration":"2022-11-30 20:12:29"}'
4.3.4.5、返回参数
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | String | 请求唯一标识 |
| data | Data |
返回结果 |
Data
| 名称 | 类型 | 描述 |
|---|---|---|
| success | boolean | 是否续期成功 |
4.3.4.6、响应示例
{
"code": 200,
"message": "success",
"requestId": "d4ca60f91bd54be0aa99e2cb273e8fe8",
"data": {
"success": true
}
}
4.3.5、jingdong.hufu.securitynumber.push
4.3.5.1、请求方式
POST
4.3.5.2、请求地址
https://hufu.cn-north-1.jdcloud-api.net/v1/securityNumbers:push?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.push&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx
4.3.5.3、请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| expressCode | String | True | 快递公司编码 |
| billCode | String | True | 运单号 |
| secretNo | String | True | 虚拟号主号 |
| extension | String | True | 虚拟号分机号 |
| phoneNoENC | String | True | 真实手机号(脱敏) |
4.3.5.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.renewal&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"billCode":"4280221217513","expressCode":"ZTO","extension":"1460","phoneNoENC":"1******3290","secretNo":"15206526108"}'
4.3.5.5、返回参数
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | String | 请求唯一标识 |
| data | Data |
返回结果 |
Data
| 名称 | 类型 | 描述 |
|---|---|---|
| success | boolean | 是否推送成功 |
4.3.5.6、响应示例
{
"code": 200,
"message": "success",
"requestId": "d4ca60f91bd54be0aa99e2cb273e8fe8",
"data": {
"success": true
}
}
4.3.6、jingdong.hufu.securitynumber.pushWaybillNo
4.3.6.1、请求方式
POST
4.3.6.2、请求地址
https://hufu.cn-north-1.jdcloud-api.net/v1/securityNumbers:pushWaybillNo?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.pushWaybillNo&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx
4.3.6.3、请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| expressCode | String | True | 快递公司编码 |
| billCode | String | True | 运单号 |
| mobileENC | String | True | 收货人加密手机号(加密方式线下沟通) |
4.3.6.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.pushWaybillNo&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"carrierCode":"SF","waybillNo":"test0100","mobileENC":"YcoST+oEY3iP76nRTIauQQ=="}'
4.3.6.5、返回参数
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | String | 请求唯一标识 |
| data | Data |
返回结果 |
Data
| 名称 | 类型 | 描述 |
|---|---|---|
| success | boolean | 是否推送成功 |
4.3.6.6、响应示例
{
"code": 200,
"message": "success",
"requestId": "d4ca60f91bd54be0aa99e2cb273e8fe8",
"data": {
"success": true
}
}
4.3.6、jingdong.hufu.securitynumber.bindAXByJDOrderId
4.3.6.1、请求方式
POST
4.3.6.2、请求地址
https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.bindAXByJDOrderId&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx
4.3.6.3、请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| orderId | Long | True | 京东平台订单号 |
| expiration | String | True | 虚拟号到期时间(必须晚于当前时间1分钟以上。日期格式:"yyyy-MM-dd HH:mm:ss") |
4.3.6.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.securitynumber.bindAXByJDOrderId&format=json&v=1.0&sign_method=md5×tamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"orderId":252435442949,"expiration":"2022-11-30 17:59:59"}'
4.3.6.5、返回参数
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | String | 请求唯一标识 |
| data | Data |
返回结果 |
Data
| 名称 | 类型 | 描述 |
|---|---|---|
| bindId | String | 安全号绑定唯一标识 |
| secretNo | String | 安全号 |
| expiration | String | 安全号到期时间 |
4.3.6.6、响应示例
{
"code": 200,
"message": "success",
"requestId": null,
"data": {
"bindId": "279a577086e84258bd88f3907085f427",
"secretNo": "18888888888",
"expiration": "2022-11-30 17:59:59"
}
}