using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Xml.Linq; using NetLibrary; namespace TradeManage { public class SFClass { public string url{get;set;} /// /// 接入码 /// public string UserCode { get; set; } /// /// 校验码 /// public string CheckCode { get; set; } /// /// 语言 /// public string Lang { get; set; } public SFClass() { // url = "http://bsp-oisp.sf-express.com/bsp-oisp/ws/expressService?wsdl"; url = "http://ibu-ibse.sit.sf-express.com:1091/CBTA/ws/sfexpressService?wsdl"; Lang = "en"; } #region 读取运单号 public sf_OrderResult GetOrderResult2(sf_Order2 model, out string ErrorMessage) { if (string.IsNullOrEmpty(UserCode) == true) { ErrorMessage = "接入码不能为空"; return null; } if (string.IsNullOrEmpty(CheckCode) == true) { ErrorMessage = "校验码不能为空"; return null; } //if (string.IsNullOrEmpty(url) == false) // obj.Url = this.url; ErrorMessage = ""; StringBuilder sb = new StringBuilder(); // sb.Append(""); sb.Append(""); sb.Append("" + this.UserCode + ""); sb.Append("" + model.ToXml() + ""); sb.Append(""); string xml = sb.ToString(); string XmlContent = ""; try { string check_word = CheckCode; string verifyCode = MD5Base64(xml + check_word); //example format: ODA4RUExMzFDRDRFM0ZFOThFOTUwQjAyNDgyOERGNjQ= sfservice.SfexpressServiceClient service = new sfservice.SfexpressServiceClient(); //string name = "sfexpressService"; //WebServiceProxy wsd; //try //{ // wsd = new WebServiceProxy(url, name); //} //catch (Exception ex) //{ // throw new Exception("创建代理对象异常", ex); //} XmlContent = service.sfexpressService(xml, verifyCode); XmlContent = XmlContent.ToLower(); XElement doc = XElement.Parse(XmlContent); string head = CustomIO.GetXmlElement(doc, "head"); if (head == "err") { XElement doc3 = doc.Element("error"); string code = CustomIO.GetXmlAttribute(doc3, "code"); ErrorMessage = "错误代码:" + code + "," + CustomIO.GetXmlElement(doc, "error"); return null; } doc = doc.Element("body").Element("orderresponse"); sf_OrderResult model2 = new sf_OrderResult(); model2.orderid = CustomIO.GetXmlAttribute(doc, "orderid"); model2.mailno = CustomIO.GetXmlAttribute(doc, "mailno"); // model2.return_tracking_no = CustomIO.GetXmlAttribute(doc, "return_tracking_no"); model2.agent_mailno = CustomIO.GetXmlAttribute(doc, "agent_mailno"); model2.skybill_code = CustomIO.GetXmlAttribute(doc, "skybill_code"); //model2.destcode = CustomIO.GetXmlAttribute(doc, "destcode"); //model2.filter_result = CustomIO.GetXmlAttribute(doc, "filter_result"); //model2.remark = CustomIO.GetXmlAttribute(doc, "remark"); return model2; //return response; } catch (Exception ex) { ErrorMessage = ex.Message; return null; // return ex.Message; } return null; } #endregion public static string MD5Base64(string input) { string pwd = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(input, "MD5"); byte[] by = System.Text.Encoding.UTF8.GetBytes(pwd); return Convert.ToBase64String(by); } } #region 订单 public class sf_Order { /// /// 客户订单号 /// public string orderid { get; set; } /// /// 快件产品类别1 标准快递2 顺丰特惠9 顺E宝平邮10 顺E宝挂号此处传产品代码 /// 目前支持如下 ///E1:顺丰国际小包平邮 ///E2: 顺丰国际小包挂号 ///E3: 顺丰国际电商专递 /// public string express_type { get; set; } /// /// 寄件方公司名称 /// public string j_company { get; set; } /// /// 寄件方联系人 /// public string j_contact { get; set; } /// /// 寄件方电话 /// public string j_tel { get; set; } /// /// 寄件方手机 /// public string j_mobile { get; set; } /// /// 寄件方详细地址 /// public string j_address { get; set; } /// /// 到件方公司名称,没有的话就传联系人名称 /// public string d_company { get; set; } /// /// 到件方联系人 /// public string d_contact { get; set; } /// /// 到件方联系电话 /// public string d_tel { get; set; } /// /// 到件方手机 /// public string d_mobile { get; set; } /// /// 到件方详细地址 /// public string d_address { get; set; } /// /// 包裹数 /// public int? parcel_quantity { get; set; } /// /// 付款方式:1:寄方付 2:收方付 3:第三方付 /// public int? pay_method { get; set; } /// /// 寄件方所在省份 /// public string j_province { get; set; } /// /// 寄件方所属城市名称 /// public string j_city { get; set; } /// /// 到件方所在省份 /// public string d_province { get; set; } /// /// 到件方所属城市名称 /// public string d_city { get; set; } /// /// 托寄物声明价值 /// public decimal? declared_value { get; set; } /// /// 托寄物声明价值币别:CNY: 人民币HKD: 港币USD: 美元NTD: 新台币RUB: 卢布EUR: 欧元MOP: 澳门元SGD: 新元JPY: 日元KRW: 韩元MYR: 马币VND: 越南盾THB: 泰铢AUD: 澳大利亚元MNT: 图格里克 /// public string declared_value_currency { get; set; } /// /// 月结卡号 /// public string custid { get; set; } /// /// 模板选择 /// public string template { get; set; } /// /// 寄方国家 /// public string j_country { get; set; } /// /// 寄件人所在县/区 /// public string j_county { get; set; } /// /// 寄件方代码 /// public string j_shippercode { get; set; } /// /// 寄方邮编 /// public string j_post_code { get; set; } /// /// 到方国家 /// public string d_country { get; set; } /// /// 到件人所在县/区 /// public string d_county { get; set; } /// /// 到件方代码 /// public string d_deliverycode { get; set; } /// /// 到方邮编 /// public string d_post_code { get; set; } /// /// 订单货物总重量 /// public decimal? cargo_total_weight { get; set; } /// /// 要求上门取件开始时间,格式:YYYY-MM-DD HH24:MM:SS,示例:2012-7-30 09:30:00,默认为系统收到订单的系统时间 /// public DateTime? sendstarttime { get; set; } /// /// 运单号 /// public string mailno { get; set; } /// /// 签回单单号 /// public string return_tracking { get; set; } /// /// 备注 /// public string remark { get; set; } /// /// 是否需要签回单号,1:需要 /// public string need_return_tracking_no { get; set; } /// /// 是否下call 1-下call,其他否SYSTEM表示如果不提供,将从系统配置获取 /// public string is_docall { get; set; } /// /// 是否申请运单号 1-申请运单号,其他否SYSTEM表示如果不提供,将从系统配置获取 /// public int? is_gen_bill_no { get; set; } /// /// 是否生成电子运单图片 1-生成,其他否SYSTEM表示如果不提供,将从系统配置获取 /// public int? is_gen_eletric_pic { get; set; } /// /// 图片格式:如果需要顺丰系统推送图片,则要传这个值。1:A42:A5 /// public int? waybill_size { get; set; } /// /// 长 /// public decimal? cargo_length { get; set; } /// /// 宽 /// public decimal? cargo_width { get; set; } /// /// 高 /// public decimal? cargo_height { get; set; } /// /// 物品信息 /// public List ListGoods { get; set; } /// /// 增值服务 /// public List ListService { get; set; } public sf_Order() { ListGoods = new List(); ListService = new List(); } #region 转成XML public string ToXml() { StringBuilder sb = new StringBuilder(); sb.Append(""); foreach (var item in this.ListGoods) { sb.Append(""); sb.Append(""); } //foreach (var item in this.ListService) //{ // sb.Append(""); // sb.Append(""); //} sb.Append(""); return sb.ToString(); } #endregion #region 欧美转成XML public string ToOUXml() { StringBuilder sb = new StringBuilder(); sb.Append(""); foreach (var item in this.ListGoods) { sb.Append(""); sb.Append(""); } sb.Append(""); return sb.ToString(); } #endregion } #endregion #region 订单 public class sf_Order2 { /// /// 客户订单号 /// public string orderid { get; set; } /// /// 快件产品类别1 标准快递2 顺丰特惠9 顺E宝平邮10 顺E宝挂号此处传产品代码 /// 目前支持如下 ///E1:顺丰国际小包平邮 ///E2: 顺丰国际小包挂号 ///E3: 顺丰国际电商专递 /// public string express_type { get; set; } /// /// 寄件方公司名称 /// public string j_company { get; set; } /// /// 寄件方联系人 /// public string j_contact { get; set; } /// /// 寄件方电话 /// public string j_tel { get; set; } /// /// 寄件方手机 /// public string j_mobile { get; set; } /// /// 寄件方详细地址 /// public string j_address { get; set; } /// /// 到件方公司名称,没有的话就传联系人名称 /// public string d_company { get; set; } /// /// 到件方联系人 /// public string d_contact { get; set; } /// /// 到件方联系电话 /// public string d_tel { get; set; } /// /// 到件方手机 /// public string d_mobile { get; set; } /// /// 到件方手机 /// public string d_email { get; set; } /// /// 操作表示(0.新增,1.新增并确认订单) /// public string operate_flag { get; set; } /// /// 到件方详细地址 /// public string d_address { get; set; } /// /// 包裹数 /// public int? parcel_quantity { get; set; } ///// ///// 付款方式:1:寄方付 2:收方付 3:第三方付 ///// //public int? pay_method { get; set; } /// /// 寄件方所在省份 /// public string j_province { get; set; } /// /// 寄件方所属城市名称 /// public string j_city { get; set; } /// /// 到件方所在省份 /// public string d_province { get; set; } /// /// 到件方所属城市名称 /// public string d_city { get; set; } /// /// 寄方国家 /// public string j_country { get; set; } /// /// 寄方国家 /// public string j_post_code { get; set; } /// /// 到方国家 /// public string d_country { get; set; } /// /// 到方邮编 /// public string d_post_code { get; set; } /// /// 订单货物总重量,单位KG /// public decimal? cargo_total_weight { get; set; } /// /// 客户ERP的标识码 /// public string returnsign { get; set; } /// /// 月结卡号 /// public string pit_code { get; set; } /// /// 模板选择 /// public string length { get; set; } /// /// 模板选择 /// public string width { get; set; } /// /// 模板选择 /// public string height { get; set; } /// /// 寄件方代码 /// public string d_identify_code { get; set; } /// /// VAT税号 /// public string vat_code { get; set; } /// /// 是否有电,默认为空,有点则填写Y,不带电填写N(俄罗斯专递必填、其它选填) /// public string is_battery { get; set; } /// /// 保价服务 /// public string is_insurance { get; set; } /// /// 物品信息 /// public List ListGoods { get; set; } /// /// 增值服务 /// // public List ListService { get; set; } public sf_Order2() { ListGoods = new List(); // ListService = new List(); } #region 转成XML public string ToXml() { StringBuilder sb = new StringBuilder(); sb.Append(""); foreach (var item in this.ListGoods) { sb.Append(""); sb.Append(""); } //foreach (var item in this.ListService) //{ // sb.Append(""); // sb.Append(""); //} sb.Append(""); return sb.ToString(); } #endregion } #endregion #region 物品信息 public class sf_Goods { /// /// 货物名称 /// public string name { get; set; } //货物英文名 public string ename { get; set; } /// /// 货物数量 /// public int? count { get; set; } /// /// 货物单位 /// public string unit { get; set; } /// /// 货物单位重量 /// public decimal? weight { get; set; } /// /// 货物单价 /// public decimal? amount { get; set; } /// /// 货物单价的币别 /// public string currency { get; set; } /// /// 原产地国别 /// public string source_area { get; set; } } public class sf_Goods2 { /// /// 货物中文品名,用于海关申报 /// public string name { get; set; } /// /// 货物英文申报品名,用于海关申报 /// public string ename { get; set; } /// /// 海关编码,用于海关申报(顺丰国际电商专递欧洲流向必填、其它选填) /// public string hscode { get; set; } /// /// 货物数量 /// public Int32? count { get; set; } /// /// 货物单位默认为PCE /// public string unit { get; set; } /// /// 货物单位重量 /// public decimal? weight { get; set; } /// /// 货物单价默认为美元 /// public decimal? amount { get; set; } /// /// 配货备注 /// public string diNote { get; set; } /// ///配货名称 /// public decimal? diPickName { get; set; } } #endregion #region 服务名 public class sf_Service { /// /// 增值服务名 /// public string name { get; set; } /// /// 增值服务值1 /// public string value { get; set; } /// /// 增值服务值2 /// public string value1 { get; set; } /// /// 增值服务名3 /// public string value2 { get; set; } /// /// 增值服务名4 /// public string value3 { get; set; } /// /// 增值服务名5 /// public string value4 { get; set; } } #endregion #region 运单号分配 public class sf_OrderResult { /// /// 订单号 /// public string orderid { get; set; } /// /// 运单号,可多个单号,如子母件,以逗号分隔 /// public string mailno { get; set; } /// /// 签单返还运单号 /// public string return_tracking_no { get; set; } /// /// 代理运单号,可多个单号,如子母件,以逗号分隔 /// public string agent_mailno { get; set; } /// /// 原寄地代码 /// public string origincode { get; set; } /// /// 目的地代码 /// public string destcode { get; set; } /// /// 筛单结果:1-人工确认,2-可收派 3-不可以收派 /// public string filter_result { get; set; } /// /// 1-收方超范围,2-派方超范围,3-其他原因 /// public string remark { get; set; } public string skybill_code { get; set; } } #endregion }