随着一个电商项目和顺丰合作, 信息流对接就是我们开发的事了.
顺丰通过丰桥提供了一些开放接口, 不过丰桥提供的 SDK 非常简陋, 对 .NET 的支持就更差了. 于是就有了这个项目 sf-express-sdk-net
主要接口集成:
下订单接口 | HTTP/POST | 客户系统向顺丰系统下达订单,为订单分配运单号 |
下订单(国际件)接口 | HTTP/POST | 客户系统向顺丰系统下达订单,为订单分配运单号 |
订单结果查询接口 | HTTP/POST | 用于在未收到返回数据时,查询下订单(含筛选)接口客户订单当前的处理情况 |
订单取消接口 | HTTP/POST | 客户在发货前取消订单 |
订单筛选接口 | HTTP/POST | 客户系统通过此接口向顺丰系统发送主动的筛单请求,用于判断客户的收、派地址是否属于顺丰的收派范围 |
路由查询接口 | HTTP/POST | 客户可通过此接口查询顺丰运单路由,顺丰系统会在响应XML报文返回当时点要求的全部路由节点信息 |
路由推送接口 | HTTP/POST | 当路由信息生产后向客户主动推送要求的顺丰运单路由信息。推送方式为增量推送,对于同一个顺丰运单的同一个路由节点,不重复推送 |
子单号申请接口 | HTTP/POST | 客户在通过下单接口提交订单后,可从此接口获取更多的子运单号 |
订单状态推送接口 | HTTP/POST | 推送订单的揽收状态 |
单元测试
SDK 中提供了相对完成的单元测试, 完整的调用示例的小伙伴可以源码中找到更多内容...
使用
- 源码集成 - 有些小伙伴可能需要自行控制和维护依赖内容, 可以克隆一份源码自己修改维护...此项目的 LICENSE 是最宽松的 MIT.
- NuGet 集成 - 为了方便你我他共同沟通开发维护和使用...笔者这里提供了 NuGet 包 SF.Express.Sdk
集成进来后需要的使用:
using SF.Express.Sdk.Request;
using SF.Express.Sdk.Response;
using System;
// 下订单请求
OrderServiceRequest orderServiceRequest = new OrderServiceRequest();
// 下订单响应
OrderServiceResponse orderServiceResponse = new SFExpressClient().Execute(request: orderServiceRequest);
// 后续逻辑...
封装过后的 SDK, 调用上还是非常简洁直观的...
注意事项
另外这里还是复述一下:
- 顺丰丰桥开放平台个人也可以非常简单注册和申请
- 顺丰丰桥接口为了兼容 WebService 数据组成部分保留了 XML 内容...不过 SDK 的封装已经磨平了这个问题
- 顺丰丰桥有个比较有意思的点, 测试和正式环境是同一个, 每一个接口都必须在测试调用通过3次以后, 才能申请正式调用.
- 保管好自己的秘钥信息.