C# 对接顺丰-丰桥

本文详细介绍了如何使用C#对接顺丰的丰桥接口,包括顾客编码、校验码和月结卡号的获取,下单、取消单、物流查询等接口的使用方法。同时提到了丰桥打印服务的配置与注意事项,强调了接口返回OK并不意味着下单成功,以及丰桥打印服务在多客户端环境中的局限性。
摘要由CSDN通过智能技术生成

前言:是今年还是去年顺丰才把接口的事务转给丰桥公司了吧,这更新换代的导致我们以前的接口下的单老是被快递员说无效。顺便说一下,丰桥只提供与费用无关的接口,常用的下单,取消单,物流查询等。存在一些坑,在这里记录下来吧,或许以后自己或别人用的着。

一、顾客编码,校验码, 月结卡号


丰桥官网 注册后,拿到你的 顾客编码,校验码, 月结卡号

 

二、接口使用


     丰桥的几个顺丰接口支持WEBSERVICE及HTTP/POST协议,我这里使用的HTTP/POST方法:

     1.先把 每个接口必用的2个方法写出来,一个是HTTP/POST的 RequestData请求方法和参数MD5加密Md5Inc方法

//统一的接口请求链接
private string reqURL = "http://bsp-oisp.sf-express.com/bsp-oisp/sfexpressService";
        private XmlDocument RequestData(string reqURL, string postData)
        {
            try
            {
                WebRequest request = (HttpWebRequest)WebRequest.Create(reqURL);
                request.Method = "POST";
                request.Timeout = 2000;//超时时间2s
                request.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
                request.ContentLength = Encoding.UTF8.GetByteCount(postData);
                byte[] postByte = Encoding.UTF8.GetBytes(postData);
                Stream reqStream = request.GetRequestStream();
                reqStream.Write(postByte, 0, postByte.Length);
                reqStream.Close();

                //读取
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                string retString = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(retString);

                return doc;
            }
            catch (Exception ex)
            {
                WriteLog(ex, "[顺丰接口请求异常]:" + postData);
                throw ex;
            }
        }

        private string Md5Inc(string buffer, string checkword)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] MD5 = md5.ComputeHash(Encoding.UTF8.GetBytes(buffer.ToString() + checkword));//MD5(注意UTF8编码)
            string result = Convert.ToBase64String(MD5);//Base64
            return result;
        }

  2.下单接口

 private XmlDocument AddOrder(dynamic param, out bool isSuccess, out string requestXml, string mailno = "")
        {
            string clientCode = "顾客编码";
            string checkword = "校验码";

            string orderId = "MY_" + DateTime.Now.ToString("yyyyMMddhhmmssff");

            StringBuilder buffer = new StringBuilder();
            buffer.Append("<Request service='OrderService' lang='zh-CN' >");
            buffer.Append("<Head>");
            buffer.Append(clientCode);
            buffer.Append("</Head>");
            buffer.Append("<Body>");
            buffer.Append("<Order ");
      
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值