【快递员上门取件API接口对接-退换货下单预约取件接口】

举报
kwan的解忧杂货铺 发表于 2024/12/20 22:08:09 2024/12/20
【摘要】 一、接口介绍发现一个非常好用的上门取件 API 接口——快递 100 商家寄件 API。通过这个接口提交寄件请求,可以直接下单至各快递公司,实现快递员上门取件,下单还可以享运费折扣这个接口支持国内主流快递公司如 EMS、德邦、京东、极兔、圆通、申通、中通、韵达下单,也就不需要逐家接口对接了。适用场景:电商退换货用户可以在 APP 上一键退货并自选上门取件的时间;二手回收;发货量较小,无月结...

一、接口介绍

发现一个非常好用的上门取件 API 接口——快递 100 商家寄件 API。通过这个接口提交寄件请求,可以直接下单至各快递公司,实现快递员上门取件,下单还可以享运费折扣

这个接口支持国内主流快递公司如 EMS、德邦、京东、极兔、圆通、申通、中通、韵达下单,也就不需要逐家接口对接了。

适用场景:电商退换货用户可以在 APP 上一键退货并自选上门取件的时间;二手回收;发货量较小,无月结账号的微商发货;品牌商家门店发货或门店调拨。

image-20241219020736886

二、 接口测试与对接指南

登录地址: https://api.kuaidi100.com/login/

在对接快递 100 预约上门取件接口前,我们需要完成以下步骤:

注册与获取 API Key

前往快递 100API 开放平台注册账号。 联系客户经理充值运费,获取 API Key 和 Secret。

1、商家寄件(下单价格)

注意:下单价格就是可以查看到下单的预估价格,然后还有折扣的价格

1.1 请求地址

提供统一格式的 HTTP POST 或 GET 调用接口,并返回统一格式 JSON 数据。

https://poll.kuaidi100.com/order/borderapi.do

1.2 请求参数:

参数名 是否必填 类型 说明
method string 业务类型(默认:price)
key string 授权码,请到快递 100 页面申请企业版接口获取
sign string 32 位大写,签名,用于验证身份,按 MD5 (param +t+key+ secret)的顺序进行 MD5 加密,不需要加上“+”号 secret 在授权邮件里面有
t string 时间戳如:1576123932000
param param 由其他字段拼接

param 数据结构:

参数名 是否必填 类型 说明
kuaidiCom string 快递公司编码
sendManPrintAddr string 出发地地址,最小颗粒到市级,例如:广东省深圳市
recManPrintAddr string 目的地地址,最小颗粒到市级,例如:广东省深圳市
weight string 重量,单位:kg,默认:1KG
serviceType string 业务类型
channelSw string 渠道 ID,如有多个同品牌运力,请联系商务提供后传入

1.3 返回结果

字段 类型 说明 备注
result boolean 提交结果 true 提交成功,false 失败
returnCode string 返回编码
message string 返回报文描述
data data 运力对象

data 数据结构:

参数名 类型 说明
defFirstPrice string 标准首重价格,单位:元
defOverPrice string 标准续重价格,单位:元
defPrice string 标准总价,单位:元
firstPrice string 折后首重价格,单位:元
overPrice string 折后续重价格,单位:元
price string 折后总价,单位:元
serviceType string 业务类型

1.4 提供数据内容

请求参数示例

method = price
key = ******
sign = 4BBDE07660E5EFF90873642CFAE9A8DD
t = 1647258957705
param = {
    "kuaidicom": "yuantong",
    "sendManPrintAddr": "杭州市西湖区东三十马路",
    "recManPrintAddr": "黑龙江哈尔滨南岗区一匡小区",
    "weight": "1",
    "serviceType": "标准快递"
}

返回结果示例

{
  "data": {
    "firstPrice": "8.0",
    "defPrice": "8.0",
    "defFirstPrice": "8.0",
    "price": "8.0",
    "serviceType": "标准快递",
    "overPrice": "0",
    "defOverPrice": "0",
    "kuaidiCom": "zhongtong"
  },
  "message": "成功",
  "result": true,
  "returnCode": "200"
}

说明:

信息代码 信息内容描述 原因及建议处理方式
200 提交成功 提交成功
400 参数错误等 请根据技术文档请求,注意参数类型及是否必填
500 服务器错误 快递 100 的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误
503 验证签名失败 请检查加密方式,param + t + key + secret 的顺序进行 MD5 加密,加密后字符串转大写,不用加上“+”号
600 您不是合法的用户(即授权 Key 出错) 账号无可用余额,需要充值
601 KEY 已过期 账号无可用余额,需要充值

1.5 Python 测试代码和测试结果

测试代码

# coding = utf-8
import hashlib
import json
import time
import requests


def do_request(url, key, secret, method, t, param):
    md = hashlib.md5()
    md.update((param + t + key + secret).encode())
    sign = md.hexdigest().upper()
    payload = {
        'key': key,
        'method': method,
        't': t,
        'param': param,
        'sign': sign
    }
    return requests.post(url, payload).text


if __name__ == '__main__':
    key = ''  # TODO 客户授权key
    secret = ''  # TODO 秘钥
    url = 'https://poll.kuaidi100.com/order/borderapi.do'  # 请求地址
    method = 'price'


    param = {
        "kuaidiCom": "yuantong",
        "sendManPrintAddr": "杭州市西湖区东三十马路",
        "recManPrintAddr": "黑龙江哈尔滨南岗区一匡小区",
        "weight": "",
        "serviceType": ""
    }
    t = str(int(round(time.time() * 1000)))
    result = do_request(url, key, secret, method, t, json.dumps(param))
    print(result)


测试数据

image-20241218132142538

测试结果

image-20241218183403650

测试结果概述:returnCode=200 表示接口请求成功。具体返回信息如下表:

参数名 内容 说明
defFirstPrice 15.00 标准首重价格,单位:元
defOverPrice 0.0 标准续重价格,单位:元
defPrice 15.00 标准总价,单位:元
firstPrice 6.50 折后首重价格,单位:元
overPrice 0.0 折后续重价格,单位:元
price 6.50 折后总价,单位:元
serviceType 标准快递 业务类型

注意:具体返回数据以接口实时返回数据为主。

2、商家寄件(下单)

选择快递公司进行下单,可以预约上门取件时间。

2.1 接口格式

提供统一格式的 HTTP POST 或 GET 调用接口,并返回统一格式 JSON 数据。

2.2 请求地址

正式请求地址:https://poll.kuaidi100.com/order/borderapi.do(订单将推至快递公司)

沙箱请求地址:https://api.kuaidi100.com/apiMock/border(订单将不推至快递公司:沙箱下单后,可通过:调试工具-商家寄件-下单回调,调试订单各阶段状态。)

请求参数:

参数名 是否必填 类型 说明
method string 业务类型(默认:bOrder)
key string 授权码,请到快递 100 页面申请企业版接口获取
sign string 32 位大写签名,用于验证身份,按 MD5 (param +t+key+ secret)的顺序进行 MD5 加密,不需要加上“+”号。secret 在企业管理后台获取
t string 时间戳如:1576123932000
param param 由其他字段拼接

param 数据结构:

参数名 是否必填 类型 说明
kuaidicom string 快递公司的编码,一律用小写字母,见《快递公司编码》
recManName string 收件人姓名
recManMobile string 收件人的手机号,手机号和电话号二者其一必填
recManPrintAddr string 收件人所在完整地址,如广东深圳市深圳市南山区科技南十二路 2 号金蝶软件园
sendManName string 寄件人姓名
sendManMobile string 寄件人的手机号,手机号和电话号二者其一必填
sendManPrintAddr string 寄件人所在的完整地址,如广东深圳市深圳市南山区科技南十二路 2 号金蝶软件园 B10
callBackUrl string callBackUrl 订单信息回调地址
cargo string 物品名称,例:文件。当 kuaidicom=jd,yuantong 时,必填
payment string 支付方式,SHIPPER: 寄付(默认)。不支持到付
serviceType string 业务类型,默认为标准快递,各快递公司业务类型对照参考:七、业务类型参数表
weight string 物品总重量 KG,不需带单位,例:1.5
remark string 备注
dayType string 预约日期,例如:今天/明天/后天
pickupStartTime string 预约起始时间(HH:mm),例如:09:00,顺丰必填
pickupEndTime string 预约截止时间(HH:mm),例如:10:00,顺丰必填,预约起始时间和预约截止时间间隔需 ≥1 小时;中通有严格要求:需要严格按照五个时间段 9:00-11:00、11:00-13:00、13:00-15:00、15:00-17:00、17:00-19:00 进行预约时间的传参,超过 19 点,自动预约第二天的时间;
channelSw string 渠道 ID,如有多个同品牌运力,请联系商务提供后传入
下单扩展属性
valinsPay string 保价额度,单位:元 (当前仅京东、德邦、圆通、极兔和申通支持线上保价,其他快递传值无效,具体费率可咨询商务)
realName string 寄件人实名信息(圆通、极兔支持 )
sendIdCardType string 寄件人证件类型,1:居民身份证 ;2:港澳居民来往内地通行证 ;3:台湾居民来往大陆通行证 ;4:中国公民护照(圆通、极兔支持 )
sendIdCard 寄件人证件号码 (圆通、极兔支持 )
passwordSigning string 是否口令签收,Y:需要 N: 不需要,默认值为 N(德邦快递专属参数)
op string 是否开启订阅功能 0:不开启(默认) 1:开启 说明开启订阅功能时:pollCallBackUrl 必须填入 此功能只针对有快递单号的单
pollCallBackUrl string 如果 op 设置为 1 时,pollCallBackUrl 必须填入,用于跟踪回调,回调内容通过五、快递信息推送接口返回(免费服务)
resultv2 string 添加此字段表示开通行政区域解析功能 。 0:关闭(默认) 1:开通行政区域解析功能以及物流轨迹增加物流状态名称 (详见:快递信息推送接口文档) 3:开通行政区域解析功能以及物流轨迹增加物流状态名称,同时返回地图内容(详见:地图轨迹推送接口文档)
returnType string 面单返回类型,默认为空,不返回面单内容。10:设备打印,20:生成图片短链回调。
siid string 设备码,returnType 为 10 时必填
tempid string 模板编码,通过管理后台的电子面单模板信息获取 ,returnType 不为空时必填
printCallBackUrl string 打印状态回调地址,returnType 为 10 时必填
salt string 签名用随机字符串,用于验证签名 sign。salt 值不为 null 时,推送数据将包含该加密签名,加密方式:md5(param+salt)。注意: salt 值为空串时,推送的数据也会包含 sign,此时可忽略 sign 的校验。
thirdOrderId string 平台订单号,最大 32 位。若此参数与之前的重复,48 小时内返回第一次下单内容,否则会重新下单。

2.3 返回结果

字段 类型 说明 备注
result boolean 提交结果 true 提交成功,false 失败
returnCode string 返回编码
message string 返回报文描述
data data

data 数据结构

字段 类型 说明 备注
taskId string 任务 ID
orderId string 订单 ID
kuaidinum string 快递单号
pollToken string 查询密钥,调用实时快递查询接口时入参此字段可免费查询该快递单号,一个快递单号对应一个密钥
eOrder string 快递面单附属属性,根据各个快递公司返回属性

eOrder 数据结构

字段 类型 说明 备注
bulkpen string 大头笔 用于显示于电子面单上规定位置,非必需,是否有值取决于快递公司
orgCode string 始发地区域编码
orgName string 始发地/始发网点名称
destCode string 目的地区域编码
destName string 目的地/到达网点
orgSortingCode string 始发分拣编码
orgSortingName string 始发分拣名称
destSortingCode string 目的分栋编码
destSortingName string 目的分栋中心名称
orgExtra string 始发其他信息
destExtra string 目的其他信息
pkgCode string 集包编码
pkgName string 集包地名称
road string 路区
qrCode string 二维码
kdComOrderNum string 快递公司订单号
expressCode string 快递业务类型编码
expressName string 快递业务类型名称
waterMark string 水印
agingName string 时效
abFlag string 电子产品类型图标
proCode string 时效产品图标
codingMapping string 进港映射码
codingMappingOut string 出港信息
printIcon string 图标名称
destRouteLabel string 目的地(路由信息)
twoDimensionCode string 二维码信息
xbFlag string 顺丰面单标识,快运必填,xbFlag=1,打印 SX 标;xbFlag=2,打印融通标

注意:eOrder 实际返回的字段各家快递公司不同,以实际返回为准

2.4 提供数据内容

请求参数示例

method = bOrder
key = ******
sign = 4BBDE07660E5EFF90873642CFAE9A8DD
t = 1647258957705
param = {
    "kuaidicom": "yuantong",
    "recManName": "王超",
    "recManMobile": "13800138000",
    "recManPrintAddr": "西藏日喀则市定日县珠穆朗玛峰",
    "sendManName": "王大",
    "sendManMobile": "13800138000",
    "sendManPrintAddr": "西藏日喀则市定日县珠穆朗玛峰",
    "cargo": "文件",
    "callBackUrl": "http: //www.baidu.com",
    "payment": "SHIPPER",
    "serviceType": "标准快递",
    "weight": "1",
    "remark": "",
    "salt": "",
    "dayType": "",
    "pickupStartTime": "",
    "pickupEndTime": "",
    "passwordSigning": "Y",
    "valinsPay": "",
    "op": "0",
    "pollCallBackUrl": "",
    "resultv2": "0",
    "returnType": "",
    "siid": "",
    "tempid": "",
    "printCallBackUrl": ""
}

返回结果示例

{
    "result": true,
    "returnCode": "200",
    "message": "提交成功",
    "data": {
        "taskId": "", // 任务ID
        "orderId": "" // 订单ID
        "kuaidinum": "" // 快递单号
        "eOrder": "[\"destName\":null,\"orgName\":null,\"pkgCode\":null,\"pkgName\":null,\"bulkpen\":\"上海-S33-K27-P\",\"orgExtra\":null}]"
    }
}

说明:

信息代码 信息内容描述 原因及建议处理方式
200 提交成功 提交成功
400 参数错误等 请根据技术文档请求,注意参数类型及是否必填
500 服务器错误 快递 100 的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误
501 重复提交 重复提交了请求
503 验证签名失败 请检查加密方式,param + t + key + secret 的顺序进行 MD5 加密,加密后字符串转大写,不用加上“+”号
600 您不是合法的用户(即授权 Key 出错) 账号无可用余额,需要充值
601 KEY 已过期 账号无可用余额,需要充值
700 错误的回调地址 检查回调地址,或者联系快递 100 工作人员

2.5 python 测试代码和测试结果

测试代码

# coding = utf-8
import hashlib
import json
import time
import requests


def do_request(url, key, secret, method, t, param):
    md = hashlib.md5()
    md.update((param + t + key + secret).encode())
    sign = md.hexdigest().upper()
    payload = {
        'key': key,
        'method': method,
        't': t,
        'param': param,
        'sign': sign
    }
    return requests.post(url, payload).text


if __name__ == '__main__':
    key = '********'  # TODO 客户授权key
    secret = '********'  # TODO 秘钥
    url = 'https://poll.kuaidi100.com/order/borderapi.do'  # 请求地址
    method = 'bOrder'


    param = {
        "kuaidicom": "shentong",
        "recManName": "李四",
        "recManMobile": "15045666312",
        "recManPrintAddr": "黑龙江哈尔滨南岗区一匡小区",
        "sendManName": "张三",
        "sendManMobile": "15045666311",
        "sendManPrintAddr": "杭州市西湖区东三十马路",
        "cargo": "书籍",
        "callBackUrl": "http://meihua150.cn/reback",
        "payment": "",
        "serviceType": "",
        "weight": "",
        "remark": "",
        "salt": "",
        "dayType": "",
        "pickupStartTime": "",
        "pickupEndTime": "",
        "passwordSigning": "N",
        "valinsPay": "",
        "op": "0",
        "pollCallBackUrl": "",
        "resultv2": "0"
    }
    t = str(int(round(time.time() * 1000)))
    result = do_request(url, key, secret, method, t, json.dumps(param))
    print(result)
    # {"data":{"kuaidinum":"YT2213099035201","orderId":"20066771","attach":null,"taskId":"9FC293CA417E431F33046E64F4C4EC20"},"message":"提交成功","result":true,"returnCode":"200"}


测试数据

image-20241218132229381

测试结果

image-20241217213450004

测试结果概述:returnCode=200 表示接口请求成功。具体返回信息如下表:

字段 内容 说明
taskId EFCC9B7835C226766E2BC9AE1E420593 任务 ID
orderId 229206462 订单 ID
kuaidinum 772035537682325 快递单号
pollToken KsofHmxy3xoaqYjoV1zb+49aRtW/04Z9rEMtlTg2pqU=" 查询密钥,调用实时快递查询接口时入参此字段可免费查询该快递单号,一个快递单号对应一个密钥
attach null 额外信息标签

注意:具体返回数据以接口实时返回数据为主。

3、商家寄件(下单取消)

对下完单且取件前的订单进行取消操作。对于不需邮寄的订单请及时进行取消,当月订单最晚需在次月 8 日前取消,否则将无法取消。

3.1 接口格式

提供统一格式的 HTTP POST 或 GET 调用接口,并返回统一格式 JSON 数据。

3.2 请求地址

https://poll.kuaidi100.com/order/borderapi.do

请求参数:

参数名 是否必填 类型 说明
method string 业务类型(默认:cancel)
key string 授权码,请到快递 100 页面申请企业版接口获取
sign string 32 位大写,签名,用于验证身份,按 MD5 (param +t+key+ secret)的顺序进行 MD5 加密,不需要加上“+”号 secret 在授权邮件里面有
t string 时间戳如:1576123932000
param param 由其他字段拼接

param 数据结构:

参数名 是否必填 类型 说明
taskId string 任务 ID
orderId string 订单 ID
cancelMsg string 取消原因,例:暂时不寄件了,最大长度不超过 30 字符

3.3 返回结果

字段 类型 说明 备注
result boolean 提交结果 true 提交成功,false 失败
returnCode string 返回编码
message string 返回报文描述
data data 这里默认为空

3.4 提供数据内容

请求参数示例

method = cancel
key = ******
sign = 4BBDE07660E5EFF90873642CFAE9A8DD
t = 1647258957705
param = {
    "taskId": "*****",
    "orderId": "*****",
    "cancelMsg": "暂时不寄件了"
}

返回结果示例

{
  "result": true,
  "returnCode": "200",
  "message": "取消成功",
  "data": {}
}

说明:

信息代码 信息内容描述 原因及建议处理方式
200 提交成功 提交成功
400 参数错误等 请根据技术文档请求,注意参数类型及是否必填
500 服务器错误 快递 100 的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,或者对已取消的订单重复操作取消,也会报此错误
501 重复提交 重复提交了请求
503 验证签名失败 请检查加密方式,param + t + key + secret 的顺序进行 MD5 加密,加密后字符串转大写,不用加上“+”号
600 您不是合法的用户(即授权 Key 出错) 账号无可用余额,需要充值
601 KEY 已过期 账号无可用余额,需要充值
700 错误的回调地址 检查回调地址,或者联系快递 100 工作人员

3.5 Python 测试代码和测试结果

测试代码

# coding = utf-8
import hashlib
import json
import time
import requests


def do_request(url, key, secret, method, t, param):
    md = hashlib.md5()
    md.update((param + t + key + secret).encode())
    sign = md.hexdigest().upper()
    payload = {
        'key': key,
        'method': method,
        't': t,
        'param': param,
        'sign': sign
    }
    return requests.post(url, payload).text


if __name__ == '__main__':
    key = ''  # TODO 客户授权key
    secret = ''  # TODO 秘钥
    url = 'https://poll.kuaidi100.com/order/borderapi.do'  # 请求地址
    method = 'cancel'


    param = {
        "taskId": "EFCC9B7835C226766E2BC9AE1E420593",
        "orderId": "229206462",
        "cancelMsg": "暂时不寄件了"
    }
    t = str(int(round(time.time() * 1000)))
    result = do_request(url, key, secret, method, t, json.dumps(param))
    print(result)


测试数据

image-20241218132307870

测试结果

image-20241217215001995

测试结果概述:returnCode=200 表示接口请求成功,返回结果为取消成功

注意:具体返回数据以接口实时返回数据为主。

4、商家寄件(下单回调)

订单有状态变更是会触发回调,回调后如果没有得到合作方正确返回,会重复回调多 2 次,即最多回调 3 次。间隔 30 分钟。

上门取件下单成功以后,快递员收到订单,会反馈接单状态,快递 100 会把状态实时推送到我们自己的服务器。

4.1 接口格式

提供统一格式的 HTTP POST,并返回统一格式 JSON 数据。

请求报头:Content-Type=application/x-www-form-urlencoded;charset=UTF-8

4.2 请求地址

请求参数:

字段 类型 说明 备注
taskId string 任务 ID
sign string 签名 32 位大写签名,MD5 (param +salt)
param param 参数主体

param 数据结构:

参数名 是否必填 类型 说明
kuaidicom string 快递公司的编码,一律用小写字母,见《快递公司编码》,选填。
kuaidinum string 快递单号,单号的最大长度是 32 个字符。
status string 状态码
message string 状态描述
data data 订单内容

data 数据结构:

参数名 是否必填 类型 说明
orderId string 平台订单 ID
status int 订单状态说明: 0:‘下单成功’; 1:‘已接单’; 2:‘收件中’; 9:‘用户主动取消’;10:‘已取件’; 11:‘揽货失败’;12:‘已退回’; 13:‘已签收’; 14:‘异常签收’;15:‘已结算’ ;99:‘订单已取消’;101:‘运输中’;200:‘已出单’;201:‘出单失败’;610:‘下单失败’;155:‘修改重量’(注意需要在工单系统中发起异常反馈并由快递 100 服务人员确认调重后才会有此状态回调,回调内容包含修改重量后的重量、运费、费用明细、业务类型);166:订单复活(订单被取消,但是实际包裹已经发出,正常计费);400:派送中
cancelMsg9 string 用户取消原因
cancelMsg99 string 系统取消或下单失败原因
courierName string 快递员姓名
courierMobile string 快递员电话
netTel string 网点电话,目前仅圆通会推送
netCode string 网点编码,目前仅圆通会推送
weight string 计费重量,单位:kg
defPrice string 标准运费,单位:元
freight string 折后运费,单位:元
volume string 体积,单位:cm³
actualWeight string 称重重量,单位:kg
ΘfeeDetails list 费用明细,明细项目请展开
└ feeType string 费用类型,参考:八、费用类型(feeType)说明
└ feeDesc string 费用名称
└ amount string 费用明细金额,单位:元
└ payStatus string 支付状态,支付失败:-1;未支付:0;已支付:1 ;无需支付:2;已退款:3
printTaskId string 打印任务 ID
label string 面单短链,下单请求中 returnType 为 20 时返回
pickupCode string 取件码,目前只有中通、申通会返回,在状态 1 时返回
pollToken string 查询密钥,调用实时快递查询接口时入参此字段可免费查询该快递单号,一个快递单号对应一个密钥。

4.3 返回结果

字段 说明 备注
result 提交结果 true 提交成功,false 失败
returnCode 返回编码
message 返回报文描述

4.4 提供数据内容

请求参数示例

taskId = ** ** **
sign = ** ** **
param = {
    "kuaidicom": "yuantong",
    "kuaidinum": "1234567890",
    "status": "200",
    "message": "成功",
    "data": {
        "orderId": "*****",
        "status": "0",
        "courierName": "王大",
        "courierMobile": "13800138000",
        "weight": "1",
        "defPrice": "15.0",
        "freight": "5.1",
        "volume": "120",
        "actualWeight": "1",
        "feeDetails": [{
            "feeType": "PACKAGINGFEE",
            "feeDesc": "包装费",
            "amount": "0.8",
            "payStatus": 1
        }]"printTaskId": "*****",
        "imgBase64": "*****"
    }
}

返回结果示例

{
  "result": true,
  "returnCode": "200",
  "message": "成功"
}

4.5 回调响应报文及错误码解释

字段名称 字段含义
result true 表示成功,false 表示失败。如果提交回调接口的地址失败,30 分钟后重新回调,3 次仍旧失败的,自动放弃
returnCode 200: 提交成功 500: 服务器错误 其他错误请自行定义
message 返回的提示

三、总结

快递 100API 开放平台提供以快递查询、快递在线下单预约上门取件为核心的一系列业务接口,对每个接口的开发文档丰富而全面,并且提供标准的多语言示例代码(Java、Python、PHP、.Net)。上面是对下单价格下单下单取消下单回调接口的应用实例。

通过本文的指南,相信您可以快速完成相关接口对接,并利用这项技术提升用户体验和业务效率。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。