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
}