You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

244 lines
7.8 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Web.Script.Serialization;
namespace NetLibrary.Express
{
public class BelgiumApi
{
public string url { get; set; }
/// <summary>
/// 授权码
/// </summary>
public string authenticate { get; set; }
JavaScriptSerializer JsonConvert = null;
public BelgiumApi()
{
JsonConvert = new JavaScriptSerializer();
}
#region 发货
public string SendGoods(Belgium_Order model, string authenticate, out string ErrorMessage)
{
if (string.IsNullOrEmpty(authenticate) == true)
{
ErrorMessage = "校验码不能为空";
return "";
}
List<string> ListHeader = new List<string>();
ListHeader.Add("Authorization:" + authenticate);
// ListHeader.Add("Content-Type:text/json;charset=utf-8");
string postmessage = JsonConvert.Serialize(model);
//UTF8Encoding encoding = new UTF8Encoding();
byte[] data = Encoding.UTF8.GetBytes(postmessage);
string XmlContent = CustomIO.HttpRequest2("http://114.55.90.117/api/LvsParcels", "POST", "text/json;charset=utf-8", ListHeader, HttpVersion.Version10, data, out ErrorMessage);
if (string.IsNullOrEmpty(ErrorMessage) == false) return "";
Belgium_Order_Result model2 = JsonConvert.Deserialize<Belgium_Order_Result>(XmlContent);
if (model2 == null || model2.ProductBarcode == null || model2.ProductBarcode == "")
ErrorMessage = XmlContent;
return model2.ProductBarcode;
}
#endregion
#region 运费估算
public Belgium_Fee GetFee(Belgium_Fee model, string authenticate, out string ErrorMessage)
{
if (string.IsNullOrEmpty(authenticate) == true)
{
ErrorMessage = "校验码不能为空";
return null;
}
List<string> ListHeader = new List<string>();
ListHeader.Add("Authorization:" + authenticate);
ListHeader.Add("charset=utf-8");
string postmessage = JsonConvert.Serialize(model);
UTF8Encoding encoding = new UTF8Encoding();
byte[] data = encoding.GetBytes(postmessage);
string XmlContent = CustomIO.HttpRequest2(url + "/api/ShippingPrice", "POST", "text/json", ListHeader, HttpVersion.Version10, data, out ErrorMessage);
model = JsonConvert.Deserialize<Belgium_Fee>(XmlContent);
string[] ss=model.ShippingPrice.Split(':');
model.currencyCode = ss[0];
model.fee = Convert.ToDecimal(ss[1]);
return model;
}
#endregion
}
#region 订单
public class Belgium_Order
{
/// <summary>
/// 永远用1
/// </summary>
public int ContractId { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNumber { get; set; }
/// <summary>
/// 追踪条形码(用户自定义,可为空)
/// </summary>
public string ProductBarcode { get; set; }
/// <summary>
/// 接收人姓名
/// </summary>
public string RecipientName { get; set; }
/// <summary>
/// 接收人所在街道
/// </summary>
public string RecipientStreet { get; set; }
/// <summary>
/// 接收人所在房子号码N
/// </summary>
public string RecipientHouseNumber { get; set; }
/// <summary>
/// 公交车号码N
/// </summary>
public string RecipientBusnumber { get; set; }
/// <summary>
/// 接收人邮编
/// </summary>
public string RecipientZipCode { get; set; }
/// <summary>
/// 接收人所在城市
/// </summary>
public string RecipientCity { get; set; }
/// <summary>
/// 接收人所在省/州N
/// </summary>
public string RecipientState { get; set; }
/// <summary>
/// MiniPak EU写EU27, 接收人所在国家全名或者2位缩写
/// </summary>
public string RecipientCountry { get; set; }
/// <summary>
/// 接收人电话N
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// 接收人邮箱N
/// </summary>
public string Email { get; set; }
/// <summary>
/// 寄件人姓名N
/// </summary>
public string SenderName { get; set; }
/// <summary>
/// 寄件人地址N
/// </summary>
public string SenderAddress { get; set; }
/// <summary>
/// 会写在发票上N
/// </summary>
public string SenderSequence { get; set; }
public bool IsSure { get; set; }
public List<Belgium_Goods> Customs { get; set; }
public Belgium_Order()
{
ContractId = 1;
IsSure = true;
Customs = new List<Belgium_Goods>();
}
}
#endregion
#region 物品信息
public class Belgium_Goods
{
/// <summary>
/// 物品号码
/// </summary>
public string Sku { get; set; }
/// <summary>
/// 物品的中文描述
/// </summary>
public string ChineseContentDescription { get; set; }
/// <summary>
/// 物品描述
/// </summary>
public string ItemContent { get; set; }
/// <summary>
/// 包裹里不同物品的总数
/// </summary>
public int ItemCount { get; set; }
/// <summary>
/// 客户为了物品付款数目 (excl 快递) : 如果礼物或样品-> 真实价值! 使用英文逗号不要用中文逗号! MiniPak EU 小于22欧元
/// </summary>
public int Value { get; set; }
/// <summary>
/// 货币种类: LVS:EUR, GBP, USD
/// </summary>
public string Currency { get; set; }
/// <summary>
/// 净重(克) (1 kg = 1000 gr) 米进制.最大值: 1999
/// </summary>
public int Weight { get; set; }
/// <summary>
/// 在标签和发票上的SKU 信息N
/// </summary>
public string SkuInInvoice { get; set; }
}
#endregion
#region 运费估算
public class Belgium_Fee
{
/// <summary>
/// 重量信息,单位为克
/// </summary>
public int Weight { get; set; }
/// <summary>
/// 物品价值
/// </summary>
public int Value { get; set; }
/// <summary>
/// 货币种类 EUR ,GBP,USD.DDU : EUR, GBP, JPY, CNY, HKD, USD, MYR
/// </summary>
public string Currency { get; set; }
/// <summary>
/// 目的地国家
/// </summary>
public string Country { get; set; }
/// <summary>
/// 包裹种类 (MiniPack 或者 TrackPack).
/// </summary>
public string ProductName { get; set; }
/// <summary>
/// 包裹运费
/// </summary>
public string ShippingPrice { get; set; }
/// <summary>
/// 估算费用货币代码
/// </summary>
public string currencyCode { get; set; }
/// <summary>
/// 估算费用
/// </summary>
public decimal fee { get; set; }
/// <summary>
/// 错误信息
/// </summary>
public string Error { get; set; }
}
#endregion
#region 订单返回结果
public class Belgium_Order_Result
{
public string ProductBarcode { get; set; }
}
#endregion
}