丰桥 - 一站式对接服务平台, 打通客户与顺丰系统之间的信息流, 实现物流供应链一体化.

随着一个电商项目和顺丰合作, 信息流对接就是我们开发的事了.

顺丰通过丰桥提供了一些开放接口, 不过丰桥提供的 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)的更多相关文章

  1. 什么是软件开发工具包(SDK)

    开发一个软件,需要经过编辑.编译.调试.运行几个过程. 编辑:使用编程语言编写程序代码的过程. 编译:如上一节所讲,就是将编写的程序进行翻译. 调试:程序不可能一次性编写成功,编写过程中难免会出现语法 ...

  2. 术语-软件-软件开发:SDK(软件开发工具包)

    ylbtech-术语-软件-软件开发:SDK(软件开发工具包) 软件开发工具包(缩写:SDK.外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包.软件框架 ...

  3. .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( ...

  4. macOS 下安装SDKMAN 软件开发工具包管理器

    SDKMAN 软件开发工具包管理器的安装非常简单,只需要打开终端,执行: $ curl -s "https://get.sdkman.io" | bash 就OK了,输出类似如下: ...

  5. SDKMAN 软件开发工具包管理器

    SDKMAN 是用来在类Unix 系统中管理多个版本的开发环境的工具.提供命令行接口来安装.切换.删除.列出候选版本. SDKMAN!是在大多数基于Unix的系统上管理多个软件开发套件的并行版本的工具 ...

  6. 自己动手做AI:Google AIY开发工具包解析

    2018年国际消费性电子展(CES)上,最明显的一个趋势是Amazon与Google的语音技术进驻战,如AmazonAlexa进驻到Acer笔电内,Google Assist进驻到KIA汽车内,其他如 ...

  7. C#入门到精通系列课程——第1章软件开发及C#简介

    ◆本章内容 (1)了解软件 (2)软件开发相关概念 (3)认识.NET Framework (4)C#语言 (5)Visual Studio 2017 ◆本章简述 软件在现代人们的日常生活中随处可见, ...

  8. APP定制开发:APP软件开发的语言和开发环境

    APP软件开发是移动互联网开发公司常开发的一种手机应用系统,对于刚刚进入APP软件开发领域的新手来说,选择什么编程语言和需要什么开发环境来开发APP软件是常遇到的问题.下面亿合科技小编来为大家分享下: ...

  9. SNMP的工作原理&软件开发

    SNMP(Simple Network Management Protocol,简单网络管理协议)首先是由IETF的研究小组为了解决Internet上的路由器管理问题而提出的.SNMP的设计原则是简单 ...

随机推荐

  1. HDU 2546 01背包问题

    这里5元是个什么意思呢.差不多就是特殊情况了. 就是说最贵的那个东西先不买.并且最后要留下5元去买那个最贵的. 也就是说对现在金钱-5 拿剩下的钱去对减去最贵的商品后的商品dp.看这些剩下的钱能买多少 ...

  2. H3C 配置NAT Server

  3. java 集合类 & 容器

    为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就要对对象进行存储,集合就是存储对象最常用的一种方式. 数组和集合类同是容器,有何不同? 数组虽然也可以存储 ...

  4. VMware 注册码

    VMware 12 Pro 永久许可证激活密钥 5A02H-AU243-TZJ49-GTC7K-3C61NVF5XA-FNDDJ-085GZ-4NXZ9-N20E6UC5MR-8NE16-H81WY- ...

  5. 无限调用函数add(1)(2)(3)......

    无限调用函数,并且累计结果 其实这也算一道面试题吧,笔者曾经被提问过,可惜当时没能答上来...

  6. 2018-8-10-win10-uwp-x_Bind-无法获得资源

    title author date CreateTime categories win10 uwp x:Bind 无法获得资源 lindexi 2018-08-10 19:17:19 +0800 20 ...

  7. Linux 内核 PCI 总线

    任何在 PCI 总线上的设备有参数 name 和 SUBSYSTEM 环境变量设置为值 pci. PCI 子系 统也一直添加下面 4 个环境变量: PCI_CLASS 设备的 PCI 类号, 16 进 ...

  8. vue-learning:0 - 目录

    Vue-learning vue.js学习路径 Vue的API地图 点击查看vue的API地图 视图层 点击可直接到达详情页面 指令 {{ }} / v-html v-if / v-else / v- ...

  9. C++动态数组中的C6385, C6386警告

    警告 C6385 从“m”中读取的数据无效: 可读大小为“col*sizeof(int)”个字节,但可能读取了“8”个字节. 警告 C6386 写入到“m”时缓冲区溢出: 可写大小为“col*size ...

  10. jdk+tomcat+mysql一键安装脚本

    最近在搞一个web项目部署,每次都要安装jdk.配置环境变量.安装tomcat和mysql.对于非开发人员,还是有点难度的,经常出错,然后就整理了一个自动化的脚本. JDKinstall.bat @e ...