您的位置:首页 > 健康 > 美食 > 公司网站开发费用济南兴田德润o评价_软件工程专业招聘信息_图片识别搜索引擎_小红书网络营销策划方案

公司网站开发费用济南兴田德润o评价_软件工程专业招聘信息_图片识别搜索引擎_小红书网络营销策划方案

2024/12/29 7:24:52 来源:https://blog.csdn.net/qyj19920704/article/details/144573258  浏览:    关键词:公司网站开发费用济南兴田德润o评价_软件工程专业招聘信息_图片识别搜索引擎_小红书网络营销策划方案
公司网站开发费用济南兴田德润o评价_软件工程专业招聘信息_图片识别搜索引擎_小红书网络营销策划方案

一、接口介绍

发现一个非常好用的上门取件 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 请求参数:

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

param 数据结构:

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

1.3 返回结果

字段类型说明备注
resultboolean提交结果true 提交成功,false 失败
returnCodestring返回编码
messagestring返回报文描述
datadata运力对象

data 数据结构:

参数名类型说明
defFirstPricestring标准首重价格,单位:元
defOverPricestring标准续重价格,单位:元
defPricestring标准总价,单位:元
firstPricestring折后首重价格,单位:元
overPricestring折后续重价格,单位:元
pricestring折后总价,单位:元
serviceTypestring业务类型

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 出错)账号无可用余额,需要充值
601KEY 已过期账号无可用余额,需要充值

1.5 Python 测试代码和测试结果

测试代码
# coding = utf-8
import hashlib
import json
import time
import requestsdef 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).textif __name__ == '__main__':key = ''  # TODO 客户授权keysecret = ''  # 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 表示接口请求成功。具体返回信息如下表:

参数名内容说明
defFirstPrice15.00标准首重价格,单位:元
defOverPrice0.0标准续重价格,单位:元
defPrice15.00标准总价,单位:元
firstPrice6.50折后首重价格,单位:元
overPrice0.0折后续重价格,单位:元
price6.50折后总价,单位:元
serviceType标准快递业务类型

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

2、商家寄件(下单)

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

2.1 接口格式

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

2.2 请求地址

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

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

请求参数:

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

param 数据结构:

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

2.3 返回结果

字段类型说明备注
resultboolean提交结果true 提交成功,false 失败
returnCodestring返回编码
messagestring返回报文描述
datadata

data 数据结构

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

eOrder 数据结构

字段类型说明备注
bulkpenstring大头笔用于显示于电子面单上规定位置,非必需,是否有值取决于快递公司
orgCodestring始发地区域编码
orgNamestring始发地/始发网点名称
destCodestring目的地区域编码
destNamestring目的地/到达网点
orgSortingCodestring始发分拣编码
orgSortingNamestring始发分拣名称
destSortingCodestring目的分栋编码
destSortingNamestring目的分栋中心名称
orgExtrastring始发其他信息
destExtrastring目的其他信息
pkgCodestring集包编码
pkgNamestring集包地名称
roadstring路区
qrCodestring二维码
kdComOrderNumstring快递公司订单号
expressCodestring快递业务类型编码
expressNamestring快递业务类型名称
waterMarkstring水印
agingNamestring时效
abFlagstring电子产品类型图标
proCodestring时效产品图标
codingMappingstring进港映射码
codingMappingOutstring出港信息
printIconstring图标名称
destRouteLabelstring目的地(路由信息)
twoDimensionCodestring二维码信息
xbFlagstring顺丰面单标识,快运必填,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 出错)账号无可用余额,需要充值
601KEY 已过期账号无可用余额,需要充值
700错误的回调地址检查回调地址,或者联系快递 100 工作人员

2.5 python 测试代码和测试结果

测试代码
# coding = utf-8
import hashlib
import json
import time
import requestsdef 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).textif __name__ == '__main__':key = '********'  # TODO 客户授权keysecret = '********'  # 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 表示接口请求成功。具体返回信息如下表:

字段内容说明
taskIdEFCC9B7835C226766E2BC9AE1E420593任务 ID
orderId229206462订单 ID
kuaidinum772035537682325快递单号
pollTokenKsofHmxy3xoaqYjoV1zb+49aRtW/04Z9rEMtlTg2pqU="查询密钥,调用实时快递查询接口时入参此字段可免费查询该快递单号,一个快递单号对应一个密钥
attachnull额外信息标签

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

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

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

3.1 接口格式

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

3.2 请求地址

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

请求参数:

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

param 数据结构:

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

3.3 返回结果

字段类型说明备注
resultboolean提交结果true 提交成功,false 失败
returnCodestring返回编码
messagestring返回报文描述
datadata这里默认为空

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 出错)账号无可用余额,需要充值
601KEY 已过期账号无可用余额,需要充值
700错误的回调地址检查回调地址,或者联系快递 100 工作人员

3.5 Python 测试代码和测试结果

测试代码
# coding = utf-8
import hashlib
import json
import time
import requestsdef 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).textif __name__ == '__main__':key = ''  # TODO 客户授权keysecret = ''  # 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 请求地址

请求参数:

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

param 数据结构:

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

data 数据结构:

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

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 回调响应报文及错误码解释

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

三、总结

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com