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.

312 lines
13 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.Web;
using System.Web.Script.Serialization;
using NetLibrary.Log;
using System.IO;
using TradeModel;
using NetLibrary;
using static TradeManage.GetOrder;
using TradeData;
namespace TradeManageNew.OuterService
{
/// <summary>
/// GetPostFee 的摘要说明
/// </summary>
public class GetPostFee : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string UserCode = context.Request.QueryString["UserCode"];
string Method = context.Request.QueryString["Method"];
JavaScriptSerializer jsonconvert = new JavaScriptSerializer();
SyncDataModel md = new SyncDataModel();
md.Result = "";
string content2 = "";
if (string.IsNullOrEmpty(UserCode) == true || string.IsNullOrEmpty(Method) == true)
{
md.Code = "101";
md.Result = "缺少参数或者参数不正确,请确保有如下UserCode,Method参数";
content2 = jsonconvert.Serialize(md);
context.Response.Write(content2);
return;
}
if (UserCode != "YYERP@251")
{
md.Code = "102";
md.Result = UserCode+"不正确";
content2 = jsonconvert.Serialize(md);
context.Response.Write(content2);
return;
}
try
{
StreamReader sr = new StreamReader(context.Request.InputStream);
string ResponseContent = sr.ReadToEnd();
ErrorFollow.TraceWrite("协议", "", ResponseContent);
if (string.IsNullOrEmpty(ResponseContent) == true)
{
md.Code = "104";
md.Result = "提交数据不能为空";
content2 = jsonconvert.Serialize(md);
context.Response.Write(content2);
return;
}
if (Method == "GetFedex")
{
Fedex_GoodsInfo model = jsonconvert.Deserialize<Fedex_GoodsInfo>(ResponseContent);
if (model != null)
{
if (model.Long == null || model.Height == null || model.Width == null || model.Weight == null)
{
md.Code = "105";
md.Result = "货物尺寸和重量不能为空";
content2 = jsonconvert.Serialize(md);
context.Response.Write(content2);
return;
}
string Width = model.Width.Value.ToString();
string Height = model.Height.Value.ToString();
string Long = model.Long.Value.ToString();
string Weight = (model.Weight.Value* 0.035274M).ToString();//克转盎司
int Num = 1;
string RevAddr = "Grace 3806 Glenfield Shadow";
string RevPhone = "9012637906";
string RevCity = "Katy";
string RevProvinceCode = "TX";
string RevPostCode = "77493";
List<Fedex_FeeReuslt> rlist = new List<Fedex_FeeReuslt>();
var obj = new HuoWuData();
int GoodsId = 1;
DataNew.DeletelPostFee(GoodsId);
string str = GoodsFedexFee3(GoodsId, 237, RevAddr, RevPhone, RevCity, RevProvinceCode, RevPostCode, Width, Height, Long, Weight, Num, "SMART_POST");
string str2 = "";
string str3 = "";
string str4 = "";
string str5 = "";
if (str != "")
str2 = GoodsFedexFee3(GoodsId, 237, RevAddr, RevPhone, RevCity, RevProvinceCode, RevPostCode, Width, Height, Long, Weight, Num, "FEDEX_GROUND");
if (str2 != "")
str3 = GoodsFedexFee3(GoodsId, 237, RevAddr, RevPhone, RevCity, RevProvinceCode, RevPostCode, Width, Height, Long, Weight, Num, "GROUND_HOME_DELIVERY");
if (str3 != "")
str4 = GoodsFedexFee3(GoodsId, 228, RevAddr, RevPhone, RevCity, RevProvinceCode, RevPostCode, Width, Height, Long, Weight, Num, "SMART_POST");
if (str4 != "")
str5 = GoodsFedexFee3(GoodsId, 228, RevAddr, RevPhone, RevCity, RevProvinceCode, RevPostCode, Width, Height, Long, Weight, Num, "FEDEX_GROUND");
if (str5 != "")
GoodsFedexFee3(GoodsId, 228, RevAddr, RevPhone, RevCity, RevProvinceCode, RevPostCode, Width, Height, Long, Weight, Num, "GROUND_HOME_DELIVERY");
var fmd = DataNew.GetModelPostFee(GoodsId);
if (fmd != null)
{
Fedex_FeeReuslt frmd = new Fedex_FeeReuslt();
if (fmd.Fee1 != null&& fmd.Fee1>0)
{
frmd = new Fedex_FeeReuslt();
frmd.StoreName = "W仓";
frmd.PostName = "SMART_POST";
frmd.PostFee = fmd.Fee1;
rlist.Add(frmd);
}
if (fmd.Fee2 != null && fmd.Fee2 > 0)
{
frmd = new Fedex_FeeReuslt();
frmd.StoreName = "W仓";
frmd.PostName = "FEDEX_GROUND";
frmd.PostFee = fmd.Fee2;
rlist.Add(frmd);
}
if (fmd.Fee3 != null && fmd.Fee3 > 0)
{
frmd = new Fedex_FeeReuslt();
frmd.StoreName = "W仓";
frmd.PostName = "GROUND_HOME_DELIVERY";
frmd.PostFee = fmd.Fee3;
rlist.Add(frmd);
}
if (fmd.Fee5 != null && fmd.Fee5> 0)
{
frmd = new Fedex_FeeReuslt();
frmd.StoreName = "E仓";
frmd.PostName = "SMART_POST";
frmd.PostFee = fmd.Fee5;
rlist.Add(frmd);
}
if (fmd.Fee6 != null && fmd.Fee6 > 0)
{
frmd = new Fedex_FeeReuslt();
frmd.StoreName = "E仓";
frmd.PostName = "FEDEX_GROUND";
frmd.PostFee = fmd.Fee6;
rlist.Add(frmd);
}
if (fmd.Fee7 != null && fmd.Fee7 > 0)
{
frmd = new Fedex_FeeReuslt();
frmd.StoreName = "E仓";
frmd.PostName = "GROUND_HOME_DELIVERY";
frmd.PostFee = fmd.Fee7;
rlist.Add(frmd);
}
}
md.Code = "100";
md.Result = "Success";
md.Data = jsonconvert.Serialize(rlist);
}
else
{
//获取用户数据
// var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID);
md.Code = "400";
md.Result = "数据参数不能为空";
md.Data = null;
}
}
}
catch (Exception ex)
{
md.Code = "104";
md.Result = ex.Message;
}
content2 = jsonconvert.Serialize(md);
ErrorFollow.TraceWrite("返回值", "", content2);
context.Response.Write(content2);
}
public string GoodsFedexFee3(int GoodsId, int PostId, string RevAddr, string RevPhone, string RevCity, string RevProvinceCode, string RevPostCode, string Width, string Height, string Long, string Weight, int Num, string PostType)
{
var obj = new HuoWuData();
JC_ExpressService service = new JC_ExpressService();
JC_ExpressPost expressModel = service.GetExpressModel(1, PostId);
TradeManageNew.FedexRateNew2 rate = new TradeManageNew.FedexRateNew2();
TradeManageNew.FedexRateNew2.Key = expressModel.UserCode;
TradeManageNew.FedexRateNew2.Password = expressModel.CheckCode;
TradeManageNew.FedexRateNew2.AccountNumber = expressModel.client_id;
TradeManageNew.FedexRateNew2.MeterNumber = expressModel.client_secret;
TradeManageNew.FedexRateNew2.PayAccountNumber = expressModel.refresh_token;
TradeManageNew.FedexRateNew2.HubId = expressModel.Code;
TradeManageNew.FedexRateNew2.PostId = PostId;
TradeManageNew.FedexFeeMdNew md = new TradeManageNew.FedexFeeMdNew();
TradeManageNew.FedexRateNew2.Addr2 = 1;
md.OrderGoodsId = GoodsId;
md.RevName = "jack";
md.RevPhone = RevPhone;
md.RevAddr = RevAddr;
md.RevCity = RevCity;
md.RevProv = RevProvinceCode;
md.RevPostCode = RevPostCode;
md.RevCountry = "US";
md.OrderId = 0;
JC_PostAddress address = new BaseService().GetAddressModel2(PostId);
md.SendAddr = address.EnglishAddress;
md.SendAddr = address.EnglishAddress;
md.SendCountry = address.countycode;
md.SendCity = address.city;
md.SendProv = address.provincecode;
md.SendPostCode = address.PostCode;
//md.SendAddr = "2611 E LINDSAY PRIVADO";// address.EnglishAddress;
//md.SendCountry = "US";// address.countycode;
//md.SendCity = "ONTARIO";// address.city;
//md.SendProv = "CA";// address.provincecode;
//md.SendPostCode = "91761";// address.PostCode;
//md.SendAddr = "480 W 83rd St";// address.EnglishAddress;
//md.SendCountry = "US";// address.countycode;
//md.SendCity = "Hialeah";// address.city;
//md.SendProv = "FL";// address.provincecode;
//md.SendPostCode = "33166";// address.PostCode;3 1 JIDE TOYS CORP. JIDE TOYS CORP. 2611 E LINDSAY PRIVADO 2611 E LINDSAY PRIVADO 9012637906 91761 CA ONTARIO US 315000 CA ONTARIO US NULL
if (Width != null && Width != "")
{
md.Width = (Math.Ceiling(Convert.ToDecimal(Width) * Num).ToString());
}
if (Height != null && Height != "")
{
md.Height = Math.Ceiling(Convert.ToDecimal(Height) * Num).ToString();
}
if (Long != null && Long != "")
{
md.Lenght = Math.Ceiling(Convert.ToDecimal(Long) * Num).ToString();
}
md.Weight = Convert.ToDecimal(Weight) * 0.0625M * Num;
md.PostType = PostType;// "SMART_POST";
string str = "";
string html = rate.GetFee(md, out str);
if (str != "")
return str;
return html;
}
public class Fedex_GoodsInfo
{
/// <summary>
/// 货物商品尺寸 长 in)英寸
/// </summary>
public decimal? Long { get; set; }
/// <summary>
/// 货物商品尺寸 宽 in)英寸
/// </summary>
public decimal? Width { get; set; }
/// <summary>
/// 高 in)英寸
/// </summary>
public decimal? Height { get; set; }
/// <summary>
/// 重量 (g
/// </summary>
public decimal? Weight { get; set; }
}
public class Fedex_FeeReuslt
{
/// <summary>
/// 仓库 东仓 西仓
/// </summary>
public string StoreName { get; set; }
/// <summary>
/// 渠道名称
/// </summary>
public string PostName { get; set; }
/// <summary>
/// 预估费用
/// </summary>
public decimal? PostFee { get; set; }
}
public bool IsReusable
{
get
{
return false;
}
}
}
}