草庐IT

顺丰快递商家寄件发货接口API类型和接入流程方案【快递100接口Demo】

kuaidi100API 2023-05-27 原文

顺丰快递对于商家和个人的隐私保护较为严格,对于操作频次高的用户会进行多次验证码确认信息和服务安全。如果需要大量地邮寄顺丰快递以及查询顺丰的快递物流轨迹信息,必须对接顺丰官方的寄件和查询API接口。企业、电商、微商、快递网点、代收点等经常性寄件的用户可以通过顺丰快递寄件API接口可以满足寄件,快递公司到家收件的需求。

顺丰目前提供了两种技术对接方案:

一种是开发者自主对接顺丰的开放平台接口。在顺丰丰桥上先注册账户后,申请成为开发者后,再根据顺丰的文档要求对接。然而,这种技术对接方案的整个流程较为繁琐冗长,需要一个个地去对接顺丰的各个相应服务的接口。即使对于有开发能力的企业来说,整个开发接入流程也需要一个星期以上的时间才能完成。对于开发和维护能力有限的优先的企业而言,这可能并不是最优解。

还有一种方式就是通过顺丰官方合作的第三方快递寄件API接口技术服务商对接(例如快递100API)。这种技术方案也更适合需要接入多家快递公司,开发和维护接口能力有限的企业。

顺丰快递公司寄件接口类型

顺丰商家寄件服务是专为寄件企业提供的一套解决方案。通过顺丰快递商家寄件服务接口,可以满足企业、电商、微商、快递网点、代收点等经常性寄件用户预约寄件,顺丰快递公司网店到指定地点收件的需求。快递100提供的商家寄件接口支持顺丰、德邦、京东、极兔、圆通、申通和中通等公司的。
若需要个人的预约寄件服务,可对接顺丰快递C端寄件接口。举个例子,这种API接口可接入商家或者企业提供给客户的退换货入口,提供给客户预约快递到家取件退货或者换货,便于商家企业退换货的物流管理。

顺丰商家寄件API应用场景

1、 品牌商家门店发货/调货场景,线下的门店发货,总部统一结算运费;
2、 发货量较小,没有和快递公司合作的微商/工作室发货;
3、 对发货时效性要求较高,需要预约快递员上门收货的场景,如生鲜配送、社区电商、商家退换货系统管理等。

顺丰商家寄件API的技术文档Demo

1.1 接口格式

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

1.2 请求地址

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

请求参数:

参数名是否必填类型说明
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备注
saltstring签名用随机字符串,用于验证签名sign。salt值不为null时,推送数据将包含该加密签名,加密方式:md5(param+salt)。注意: salt值为空串时,推送的数据也会包含sign,此时可忽略sign的校验。
dayTypestring预约日期,例如:今天/明天/后天
pickupStartTimestring预约起始时间(HH:mm),例如:09:00,顺丰必填
pickupEndTimestring预约截止时间(HH:mm),例如:10:00,顺丰必填
valinsPaystring保价额度,单位:元
passwordSigningstring是否口令签收,Y:需要 N: 不需要,默认值为N(德邦快递专属参数)
opstring是否开启订阅功能 0:不开启(默认) 1:开启 说明开启订阅功能时:pollCallBackUrl必须填入 此功能只针对有快递单号的单
pollCallBackUrlstring如果op设置为1时,pollCallBackUrl必须填入,用于跟踪回调
resultv2string添加此字段表示开通行政区域解析功能 。
0:关闭(默认)
1:开通行政区域解析功能以及物流轨迹增加物流状态名称
4:开通行政解析功能以及物流轨迹增加物流高级状态名称、状态值并且返回出发、目的及当前城市信息(详见:快递信息推送接口文档)
returnTypestring面单返回类型,默认为空,不返回面单内容。10:设备打印,20:生成图片短链回调。
siidstring设备码,returnType为10时必填
tempidstring模板编码,通过管理后台的电子面单模板信息获取 ,returnType不为空时必填
printCallBackUrlstring打印状态回调地址,returnType为10时必填

1.3 返回结果

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

data数据结构

字段类型说明备注
taskIdstring任务ID
orderIdstring订单ID
kuaidinumstring快递单号
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实际返回的字段各家快递公司不同,以实际返回为准

1.4 提供数据内容

请求参数示例

method = bOrder
key = ******
sign = 4BBDE07660E5EFF90873642CFAE9A8DD
t = 1647258957705
param = {
	"kuaidicom": "yuantong",
	"recManName": "王超",
	"recManMobile": "13842569988",
	"recManPrintAddr": "广东深圳市深圳市南山区科技南十二路2号金蝶软件园",
	"sendManName": "王大",
	"sendManMobile": "13842569988",
	"sendManPrintAddr": "广东深圳市深圳市南山区科技南十二路2号金蝶软件园B10",
	"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工作人员

有关顺丰快递商家寄件发货接口API类型和接入流程方案【快递100接口Demo】的更多相关文章

  1. ruby-on-rails - ActionController::RoutingError: 未初始化常量 Api::V1::ApiController - 2

    我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc

  2. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  3. unity---接入Admob - 2

    目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里​编辑 3.解析依赖到项目中

  4. ruby-on-rails - Mandrill API 模板 - 2

    我正在使用Mandrill的RubyAPIGem并使用以下简单的测试模板:testastic按照Heroku指南中的示例,我有以下Ruby代码:require'mandrill'm=Mandrill::API.newrendered=m.templates.render'test-template',[{:header=>'someheadertext',:main_section=>'Themaincontentblock',:footer=>'asdf'}]mail(:to=>"JaysonLane",:subject=>"TestEmail")do|format|format.h

  5. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  6. ruby-on-rails - 在 Ruby (on Rails) 中使用 imgur API 获取图像 - 2

    我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path

  7. ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用 - 2

    Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"

  8. ruby-on-rails - 是否使用 API - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我的公司有一个巨大的数据库,该数据库接收来自多个来源的(许多)事件,用于监控和报告目的。到目前为止,数据中的每个新仪表板或图形都是一个新的Rails应用程序,在巨大的数据库中有额外的表,并且可以完全访问数据库内容。最近,有一个想法让外部(不是我们公司,而是姊妹公司)客户访问我们的数据,并且决定我们应该公开一个只读的RESTfulAPI来查询我们的数据。我的观点是-我们是否也应该为我们的自己

  9. ruby - Ruby 中的必应搜索 API - 2

    我读了"BingSearchAPI-QuickStart"但我不知道如何在Ruby中发出这个http请求(Weary)如何在Ruby中翻译“Stream_context_create()”?这是什么意思?"BingSearchAPI-QuickStart"我想使用RubySDK,但我发现那些已被弃用前(Rbing)https://github.com/mikedemers/rbing您知道Bing搜索API的最新包装器(仅限Web的结果)吗? 最佳答案 好吧,经过一个小时的挫折,我想出了一个办法来做到这一点。这段代码很糟糕,因为它是

  10. python - 用于 Python 或 Ruby 的 Amazon Book API? - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:AmazonAPIlibraryforPython?我正在寻找一个AmazonAPI,它可以让我:按书名或作者查找书籍显示书籍封面获取有关每本书的信息(价格、评级、评论数、格式、页数等)Python或Ruby库都可以(我只想要最容易使用的库)。有什么建议么?我知道在SO上还有其他一些关于此的帖子,但这些API似乎很快就过时了。[几个月前我尝试了几个建议的Ruby库,但无法让它们中的任何一个工作。]

随机推荐