顺丰丰桥软件开发工具包 (.NET)
丰桥 - 一站式对接服务平台, 打通客户与顺丰系统之间的信息流, 实现物流供应链一体化.
随着一个电商项目和顺丰合作, 信息流对接就是我们开发的事了.
顺丰通过丰桥提供了一些开放接口, 不过丰桥提供的 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 | 推送订单的揽收状态 |
注: 2个推送接口需要自行开发对接.
单元测试
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次以后, 才能申请正式调用.
- 保管好自己的秘钥信息.
顺丰丰桥软件开发工具包 (.NET)的更多相关文章
- 什么是软件开发工具包(SDK)
开发一个软件,需要经过编辑.编译.调试.运行几个过程. 编辑:使用编程语言编写程序代码的过程. 编译:如上一节所讲,就是将编写的程序进行翻译. 调试:程序不可能一次性编写成功,编写过程中难免会出现语法 ...
- 术语-软件-软件开发:SDK(软件开发工具包)
ylbtech-术语-软件-软件开发:SDK(软件开发工具包) 软件开发工具包(缩写:SDK.外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包.软件框架 ...
- .net core 2.2 部署CentOS7(4)CentOS7下载并安装.NET SDK(软件开发工具包)
目录: .net core 2.2 部署CentOS7(1)安装虚拟机 .net core 2.2 部署CentOS7(2)给虚拟机安装CentOS7 .net core 2.2 部署CentOS7( ...
- macOS 下安装SDKMAN 软件开发工具包管理器
SDKMAN 软件开发工具包管理器的安装非常简单,只需要打开终端,执行: $ curl -s "https://get.sdkman.io" | bash 就OK了,输出类似如下: ...
- SDKMAN 软件开发工具包管理器
SDKMAN 是用来在类Unix 系统中管理多个版本的开发环境的工具.提供命令行接口来安装.切换.删除.列出候选版本. SDKMAN!是在大多数基于Unix的系统上管理多个软件开发套件的并行版本的工具 ...
- 自己动手做AI:Google AIY开发工具包解析
2018年国际消费性电子展(CES)上,最明显的一个趋势是Amazon与Google的语音技术进驻战,如AmazonAlexa进驻到Acer笔电内,Google Assist进驻到KIA汽车内,其他如 ...
- C#入门到精通系列课程——第1章软件开发及C#简介
◆本章内容 (1)了解软件 (2)软件开发相关概念 (3)认识.NET Framework (4)C#语言 (5)Visual Studio 2017 ◆本章简述 软件在现代人们的日常生活中随处可见, ...
- APP定制开发:APP软件开发的语言和开发环境
APP软件开发是移动互联网开发公司常开发的一种手机应用系统,对于刚刚进入APP软件开发领域的新手来说,选择什么编程语言和需要什么开发环境来开发APP软件是常遇到的问题.下面亿合科技小编来为大家分享下: ...
- SNMP的工作原理&软件开发
SNMP(Simple Network Management Protocol,简单网络管理协议)首先是由IETF的研究小组为了解决Internet上的路由器管理问题而提出的.SNMP的设计原则是简单 ...
随机推荐
- python新知识
# 强制字符串转化 repr(1.1 + 2.2) # 字符串换行 a = "hello, world. " \ "it's a nice day. " \ & ...
- 【a503】圆排列问题
Time Limit: 1 second Memory Limit: 32 MB [问题描述] 给定n个大小不等的圆c1,c2,...., cn,现要将这n个圆排列进一个矩形框中,且要求各圆与矩形框的 ...
- AIM Tech Round (Div. 2)
A. Save Luke 题意:给一个人的长度d,然后给一个区间长度0~L,给你两个子弹的速度v1,v2,两颗子弹从0和L向中间射去(其实不是子弹,是一种电影里面那种绞牙机之类的东西就是一个人被困在里 ...
- 【js】vue 2.5.1 源码学习 (四) 钩子函数 资源选项 watch 的合并策略
大体思路 (三) 1.钩子函数 自定义策略 LIFECYCLE_HOOKS= [] created = [function(){} , function(){}] 组装方法 ...
- Linux 内核驱动结构嵌入
如同大部分驱动核心结构的情形, device_driver 结构常常被发现嵌到一个更高级的, 总 线特定的结构. lddbus 子系统不会和这样的趋势相反, 因此它已定义了它自己的 ldd_drive ...
- LuoguP5464 缩小社交圈
LuoguP5464 缩小社交圈 背景:洛谷七月月赛T4 题目大意给定\(n\)个点,每个点的权值对应着一个区间\([l_i,r_i]\),两个点\(i,j\)有边当且仅当他们权值的并集不为空集,问有 ...
- E40笔记本无线网卡
E40笔记本无线网卡详情 网卡名称 Intel(R) Dual Band Wireless-AC 3160 网卡厂商 英特尔 Mac地址 34:E6:AD: 规格 - 基本要素 状态 Launched ...
- Android Library的依赖方式及发布(转)
还是那句老话,好记性不然烂笔头,在此整理 Android Studio 依赖相关 以及 如何发布项目到 JCenter Android Studio 添加依赖Module 依赖module 依赖是指在 ...
- Python_自定义关键字的使用
1.在Python中新建一个套件MOSAPP(一般为APP名称):New Suite→Directory 2.在套件下新建个资源文件My:New Resource:My 3.在My资源文件库下新建个关 ...
- 第三阶段:3.Web端产品设计:3.产品设计的层次
一般淘宝购物的五个流程:浏览对应表现层,搜索对应框架层,产品页面对应架构层,确认对应范围层,付款对应战略层. 从具象到抽象.但是我们做产品都是从抽象到具象,而用户使用产品是从具象到抽象. 各个层次之间 ...