快递柜投放场景短信对接白皮书

1、服务介绍

本服务解决在手机号脱敏背景下,快递投妥后无法进行取货码短信通知问题。

2、对接流程

2.1入驻云鼎平台

云鼎平台网址:https://yd.jdcloud.com/#/
点击入驻云鼎,如已有账号则不需注册。

快递柜场景

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

快递柜场景

2.2创建快递柜系统应用

待资料审核后,在云鼎控制台【业务组件】-【虎符】-【应用管理】页面https://hufu-yd-console.jdcloud.com/#/hufu/list 创建应用,选择业务域:物流,应用类型:快递柜

快递柜场景

创建京东云用户签名:AK,SK管理地址 https://uc.jdcloud.com/account/accesskey

2.3接入场景

应用创建后,在云鼎控制台【业务组件】-【虎符】-【三方互通】-【场景列表】页面http://hufu-yd-console.jdcloud.com/#/hufu/generallist,申请用已创建快递柜系统应用接入快递柜场景,接入快递柜场景会为您自动开通短信服务。

快递柜场景

接入快递柜场景后,在云鼎控制台【业务组件】-【虎符】-【三方互通】-【我的场景】页面,可查看已接入场景。

2.4短信维护

2.4.1购买短信套餐包

通过控制台【业务组件】-【云鼎短信服务】-【套餐包管理】购买短信套餐包 http://yd-sms-console.jdcloud.com/package。短信账户余额是发送短信的必要条件。

2.4.2创建签名/模板

在控制台【业务组件】-【云鼎短信服务】-【应用管理】页面,点击应用名称,进入应用管理创建签名与模板,待运营审核

快递柜场景

快递柜场景

账户概览页面支持设置短信余量预警通知,为保障快递投柜业务正常,建议依据业务量设置短信余量预警。

2.5服务上线

2.5.1 服务开发

在【业务组件】-【虎符】-【三方互通】-【我的场景】页面 http://hufu-yd-console.jdcloud.com/#/hufu/generalmylist 点击接入管理。页面可查看授权AK/SK,通过我的API列表,对方API列表查看需要开发的接口信息。进行相应服务开发。

快递柜场景

2.5.2 服务上线

在【业务组件】-【虎符】-【三方互通】-【我的场景】页面 http://hufu-yd-console.jdcloud.com/#/hufu/generalmylist 点击接入管理,发起上线申请。

快递柜场景

测试时可在【测试业务】发起上线申请,需运营审核,待测试联调无问题后可在【线上业务】发起上线申请。

快递柜场景

快递柜场景

上线申请输入快递柜系统接收回执地址。

快递柜场景

线上业务上线申请提交后,等待云鼎运营审核,审核通过后,可在【环境信息】生成SDK和文档,进行线上环境调用。

3、短信对接API文档及传参示例

3.1 云鼎虎符快递柜解决方案接口文档

1、相关术语

1.1、接口类型

正向接口:需要快递公司实现,上游系统调用
反向接口:上游系统实现,快递公司调用

接口类型 接口名称 接口描述
正向接口 jingdong.hufu.sms.logistics.report 推送短信回执
正向接口 jingdong.hufu.sms.logistics.uplink 推送上线消息
反向接口 jingdong.hufu.sms.logistics.getConsigneeInfo 校验运单号是否可以投柜,校验状态有效期1小时,发送短信前必须先调用此接口校验运单号。
反向接口 jingdong.hufu.sms.logistics.sendMessageByBillCode 根据运单号发送短信
反向接口 jingdong.hufu.sms.logistics.existByExpressCodeAndBillCode 校验运单号是否属于京东平台(回传取件码前调用此接口校验)
反向接口 jingdong.hufu.sms.logistics.getEncryptConsigneeInfo 根据运单号获取收货人加密手机号
正向接口 jingdong.hufu.sms.logistics.securityNumber.push 推送隐私面单虚拟号主号池
反向接口 jingdong.hufu.sms.logistics.existByExpressCodeAndBillCodeAndMobileENC 根据运单号+加密手机号校验运单号是否为京东平台运单(仅用于终端查询场景,其他场景不适用)

1.2、前端授权

客户端调用虎符网关需要传入“sign”参数,虎符网关计算签名是否正确,用于校验调用者身份。

1.3、后端签名

虎符网关将请求透传到后端服务时会重新计算“sign”值,如果后端服务需要校验虎符网关的身份是否合法,可以使用相同的算法计算“sign”值,用于校验虎符网关身份。

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.sms.logistics.getConsigneeInfo&sign=917DE2C2258D6DDE20EB3D6F3ED364F3&sign_method=md5&timestamp=2021-11-19 13:53:53&format=json&v=1.0

输入参数为(参数 URL Decode之后再计算签名) 注:参数列表中的sign不参与计算签名,除此之外所有参数都要参与计算签名

  app_key=XXXXXXXXXXXXXXXXX
  customerId=0100
  format=json
  method=jingdong.hufu.sms.logistics.getConsigneeInfo
  sign_method=md5
  timestamp=2021-11-19 13:53:53
  v=1.0

请求body为

{"expressCode":"ZGYZZHDD","billCode":"9830362800090"}

按首字母升序排列

app_key=XXXXXXXXXXXXXXXXX
   customerId=0100
   format=json
   method=jingdong.hufu.sms.logistics.getConsigneeInfo
   sign_method=md5
   timestamp=2021-11-19 13:53:53
   v=1.0

连接字符串: 连接参数名与参数值,body参数拼接在query参数后,并在首尾加上secret ,此处假设 secret=test ,如下:

testapp_keyXXXXXXXXXXXXXXXXXcustomerId0100methodjingdong.hufu.sms.logistics.getConsigneeInfosign_methodmd5timestamp1621318983000{"expressCode":"ZGYZZHDD","billCode":"9830362800090"}test

生成签名 sign: 32位大写 MD5 值-> 211E472XXXXXXXXXXXXX288F9F368

2、系统参数

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 签名

2.2、公共响应信息

名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Error

名称 类型 描述
code Integer 错误状态码
message String 错误消息
status String 状态

3、接口文档

3.1、jingdong.hufu.sms.logistics.getConsigneeInfo

3.1.1、请求方式

POST

3.1.2、请求地址

https://hufu.cn-north-1.jdcloud-api.net/v1/getConsigneeInfo?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.getConsigneeInfo&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx

3.1.3、请求参数
名称 类型 是否必需 描述
expressCode String False 快递公司编码
billCode String False 运单号
3.1.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.netm/v1/getConsigneeInfo?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.getConsigneeInfo&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"expressCode":"ZGYZZHDD","billCode":"983036200000"}'
3.1.5、返回参数
名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Data

名称 类型 描述
phone String 手机号(脱敏)
expressCode Number 快递公司编码
billCode String 运单号
3.1.6、响应示例
{
  "requestId": "c6ea14iet0se3hg2r5m5169qajr8rttn",
  "data": {
      "expressCode": "ZGYZZHDD",
      "billCode": "983036200000",
      "phone": "188****3290"
  }
}

3.2、jingdong.hufu.sms.logistics.sendMessageByBillCode

3.2.1、请求方式

POST

3.2.2、请求地址

https://hufu.cn-north-1.jdcloud-api.net/v1/sendMessageByBillCode?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.sendMessageByBillCode&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx

3.2.3、请求参数
名称 类型 是否必需 描述
appId String True 云鼎短信应用ID,登陆云鼎短信控制台查看 https://yd-sms-console.jdcloud.com/overview
signId String True 云鼎短信签名ID,登陆云鼎短信控制台查看 https://yd-sms-console.jdcloud.com/overview
templateId String True 云鼎短信模板ID,登陆云鼎短信控制台查看 https://yd-sms-console.jdcloud.com/overview
params Array False 短信模板变量对应的数据值
expressCode String True 快递公司编码
billCode String True 运单号
extend String False 扩展参数,长度32位,推送回执时回传该参数
3.2.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net/v1/sendMessageByBillCode?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.sendMessageByBillCode&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"appId":"yd-app-test0100","templateId":"3b2ef8546af94b2e83f566c5b100xxx","signId":"05bf88e6a1f84abb97c5fcc1d78xxxx","expressCode":"ZGYZZHDD","billCode":"983036200000","params":[123]}'
3.2.5、返回参数
名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Data

名称 类型 描述
phone String 手机号(脱敏)
expressCode String 快递公司编码
billCode String 运单号
ReqCode String 状态码
ReqMsg String 消息
ReqId String 发送短信唯一标识
extend String 扩展参数
3.2.6、响应示例
{
  "requestId": "c6ea5qamcdmw0dw3h5pkjvpgdbpwu9p4",
  "data": {
      "expressCode": "ZGYZZHDD",
      "billCode": "983036200000",
      "phone": "188****3290",
      "ReqCode": "00",
      "ReqMsg": "提交成功",
      "ReqId": "211123161429108512100003"
  }
}

3.3、jingdong.hufu.sms.logistics.report

快递公司按照接口标准实现该接口

3.3.1、请求方式

POST

3.3.2、请求地址

[backendUrl]/v1/report?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.report&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx

注:backendUrl 为在虎符控制台配置得后端服务地址

3.3.3、请求参数
名称 类型 是否必需 描述
code String False 短信回执状态对应的 code
desc String False 短信回执状态对应的 描述
status String False 短信发送结果 0:成功,非 0 失败
reqid String False 短信发送唯一标识,短信发送接口返回了该值
time String False 短信回执推送时间
phone String False 手机号(脱敏)
expressCode String False 快递公司编码
billCode String False 运单号
extend String False 扩展参数,长度32位,调用短信发送接口时指定该参数
3.3.4、请求示例
curl -X POST '[backendUrl]/v1/report?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.report&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"reqid":"211123161429108512100003","phone":"188****3290","time":"2021-11-23 16:14:37","status":"0","code":"DELIVRD","desc":"成功","expressCode":"ZGYZZHDD","billCode":"98303620000"}'
3.3.5、返回参数
名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Data

名称 类型 描述
status Boolean 是否接收成功
3.3.6、响应示例
{
  "requestId": "c6ea14iet0se3hg2r5m5169qajr8rttn",
  "data": {
      "status": true
  }
}

快递公司按照接口标准实现该接口

3.4.1、请求方式

POST

3.4.2、请求地址

[backendUrl]/v1/uplink?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.uplink&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx

注:backendUrl 为在虎符控制台配置得后端服务地址

3.4.3、请求参数
名称 类型 是否必需 描述
time String False 上行消息推送时间
phone String False 手机号(脱敏)
sign String False 短信签名
content String False 短信回复内容
3.4.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.net/v1/uplink?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.uplink&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"content":"very good","phone":"188****3290","time":"2021-11-19 13:53:53","subcode":"","sign":"测试"}'
3.4.5、返回参数
名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Data

名称 类型 描述
status Boolean 是否接收成功
3.4.6、响应示例
{
  "requestId": "c6ea14iet0se3hg2r5m5169qajr8rttn",
  "data": {
      "status": true
  }
}

3.5、jingdong.hufu.sms.logistics.existByExpressCodeAndBillCode

校验运单号是否属于京东平台(回传取件码前调用此接口校验)

注意:接入该接口需要新创建一个虎符应用,重新接入场景并申请上线(参考接入流程)

3.5.1、请求方式

POST

3.5.2、请求地址

https://hufu.cn-north-1.jdcloud-api.net/v1/existByExpressCodeAndBillCode?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.existByExpressCodeAndBillCode&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx

3.5.3、请求参数
名称 类型 是否必需 描述
expressCode String False 快递公司编码
billCode String False 运单号
3.5.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.netm/v1/existByExpressCodeAndBillCode?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.existByExpressCodeAndBillCode&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"expressCode":"ZGYZZHDD","billCode":"983036200000"}'
3.5.5、返回参数
名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Data

名称 类型 描述
exist Boolean true表示存在 false表示不存在
3.5.6、响应示例

判断方法: data节点不为空且exist等于true表示运单是京东平台

{
  "requestId": "cja8n8dfs64p839d7q3ufmhh1kqwrfv8",
  "data": {
    "exist": true
  }
}

3.6、jingdong.hufu.sms.logistics.getEncryptConsigneeInfo

根据运单号查询收货人加密手机号(调用该接口需额外申请权限)

3.6.1、请求方式

POST

3.6.2、请求地址

https://hufu.cn-north-1.jdcloud-api.net/v1/getEncryptConsigneeInfo?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.getEncryptConsigneeInfo&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx

3.6.3、请求参数
名称 类型 是否必需 描述
expressCode String False 快递公司编码
billCode String False 运单号
3.6.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.netm/v1/getEncryptConsigneeInfo?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.getEncryptConsigneeInfo&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"expressCode":"ZGYZZHDD","billCode":"983036200000"}'
3.6.5、返回参数
名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Data

名称 类型 描述
phone String 手机号(加密)
expressCode Number 快递公司编码
billCode String 运单号
3.6.6、响应示例
{
  "requestId":"cjaa23gr7rj5ikf5wgj4r7m2u0e6qe7n",
  "data":{
    "expressCode":"YTO",
    "billCode":"YT3750123123123",
    "phone":"gVP3TU6jS5gdrg+n/n7WnQ=="
  }
}

3.7、jingdong.hufu.sms.logistics.securityNumber.push

推送京东隐私面单AXE模式虚拟号主号码(用于校验隐私面单是否来自京东,其他场景不适用)

3.7.1、请求方式

POST

3.7.2、请求地址

[backendUrl]/v1/securityNumberPush?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.scurityNumber.push&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx

3.7.3、请求参数
名称 类型 是否必需 描述
version Integer True 版本号,从0开始递增
privacyNumberList Array True 隐私面单主号集合(每个批次同步200个号码),号码使用AES解密,密钥为虎符应用secret
3.7.4、请求示例
curl -X POST '[backendUrl]/v1/securityNumberPush?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.getEncryptConsigneeInfo&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"version":0,"privacyNumberList":["mVPzdLWZq2iwVRpVDTpgGQ==","cRJcYRnIH/mlEUP24Y5UWA=="]}'
3.7.5、返回参数
名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Data

名称 类型 描述
status Boolean 是否接收成功
3.7.6、响应示例
{
  "requestId":"cjaa23gr7rj5ikf5wgj4r7m2u0e6qe7n",
  "data":{
    "status":true
  }
}

3.8、jingdong.hufu.sms.logistics.existByExpressCodeAndBillCodeAndMobileENC

根据运单号+加密手机号校验运单号是否为京东平台运单(仅用于终端查询场景,其他场景不适用)

3.8.1、请求方式

POST

3.8.2、请求地址

https://hufu.cn-north-1.jdcloud-api.net?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.existByExpressCodeAndBillCodeAndMobileENC&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx

3.8.3、请求参数
名称 类型 是否必需 描述
expressCode String True 快递公司编码
billCode String True 运单号
mobileENC String True 手机号SHA256摘要
3.8.4、请求示例
curl -X POST 'https://hufu.cn-north-1.jdcloud-api.netm?app_key=xxx&customerId=xxx&method=jingdong.hufu.sms.logistics.existByExpressCodeAndBillCodeAndMobileENC&format=json&v=1.0&sign_method=md5&timestamp=2021-11-19 13:53:53&sign=xxx' \
-H 'Content-Type: application/json' \
--data-raw '{"expressCode":"ZGYZZHDD","billCode":"983036200000","mobileENC":"129F0CC6C5F5EE33251137A2C0C03214D1ADD9A13B50F49048A54227304164170"}'
3.8.5、返回参数
名称 类型 描述
requestId String 请求唯一标识
data Data 返回结果
error Error 返回结果

Data

名称 类型 描述
exist Boolean true表示存在 false表示不存在
3.8.6、响应示例

判断方法: data节点不为空且exist等于true表示运单是京东平台

{
  "requestId": "cja8n8dfs64p839d7q3ufmhh1kqwrfv8",
  "data": {
    "exist": true
  }
}

4、快递公司编码信息

快递公司名称 快递公司编码
全峰快递 QFKD
国通快递 GTO
中通快递 ZTO
快捷快递 KJKD
韵达快递 YUNDA
优速快递 UC
万家康 WJK
如风达 RFD
邮政小包 ZGYZZHDD
宅急送 ZJS
速尔物流 SE
全一快递 QY
亚风快运 AF
龙邦速运 LBEX
申通快递 STO
新邦物流 XBWL
百世汇通 BESTJD
天天快递 TTKD
贝业新兄弟 RRS
中铁物流 CRLG
蒙速快递 NMMS
德邦物流 DEPPON
天地华宇 HOAU
我买网 WMW
圆通快递 YTO
东方汇 DFH
京东快递 BDB
安能快递 ANXB
上海佳吉 CNEX
跨越速运 KYE
宏远物流 UBONEX
EMS EMS
中铁快运 CRE
微特派 JDGB-2
一智通物流 YZTWL
易宅配物流 YZPWL
斑马物流 banma
中诚速递 ZZZCSD
卡行天下 KXKD
安达信物流 JDGB-5
速呈宅配 JDGB-7
星程宅配 JDUTF8-6
DHL DHL
快行线快递 KXX
汇强快递 HQKD
联邦快递 FEDEX
增益速递 ZYSD
顺丰快递 SF
威盛 SHWS
威时 WTD
易客满 ECMS
百世快运 BESTQJT
中通物流 ZTO56
日日顺物流 RRSWL
八达通 YLBDT
增速益 ZENYZOOM
集成 HNIG
中远 COSCO
品骏 PJ
中山邮政 EPACKET
DHL海外 DHL-17TRACK
Fedex海外 Fedex-17TRACK
UPS海外 UPS-17TRACK
SPSR海外 SPSR-17TRACK
EQUICK EQUICK2
荷兰邮政小包 HLYZGHXB-17TRACK
悦通集运 YUETO
珠海广丰 GFL
贝海 XLOBO
数码港 SMG
佳成 JCEX
韵达快运 YDKY
E路通 ELT
EWE智慧物流 EWE
达达快递 DADA
嘉里物流海外 KERRY-17TRACK
青岛翔通 QDXT
安得物流 ANNTO
九曳物流 JIUYESCM
宅急便 YAMATO
广州速递 GZEMS
FEDEX国际段 FEDEXINTL
汽后掏掏 APT
青岛翔通-直购 QDXT_ZHIGOU
龙飞翔 MIJI
顺心捷达(原新邦快递) SXJD
京东云仓 JDYC
华信物流 HXWL
陆地港 JJDP
神州集运 SZJY-17TRACK
马可达-台湾 MCT-17TRACK
海信物流 SAVOR
成都全友电子 QUANYOU
承诺达特快-圆通网 OTP
星星物流 XXWL
高捷物流 GXA-17TRACK
安迅物流 AXWL
众邮快递 ZYKD
京旗联盟-极兔 JTSD
服务中台 HOMEFW
Yodel Yodel
RoyalMail RoyalMail
壹米滴答 YMDD
北京快达 BJKD
深圳有信达 SZYXD
怡宝商家 YBSH
速邮达 SYD
北京广汽行 BJQGH
农夫山泉 NFSSDF
联通码上购 ZGLT
洋包裹 YBG
麦哲伦跨境物流 MZLKJWL
英超物流 YCWL
全渠道门店自配送 QQD
广交 GJWLSU
USPS USPS-17TRACK
京东大件物流 JDLD
丰网 FENGWANG
龙飞祥 LUCFLOW
别样 BY

results matching ""

    No results matching ""

    results matching ""

      No results matching ""