using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace Pcb.Common.FactHelper
|
{
|
public class AllpcbApiHelper
|
{
|
private static string ApiRoot = ConfigUtils.ApiAllPcbSiteUrl;
|
|
/// <summary>
|
/// 外贸固定的token
|
/// </summary>
|
public static string Token
|
{
|
get
|
{
|
var tokenkey = "Cacke_Allpcb_Token";
|
var token = MemcachedHelper.instance.Get<string>("tokenkey");
|
if (string.IsNullOrWhiteSpace(token))
|
{
|
var emamil = "008@jiepei.com";
|
var pwd = "123123";
|
token = GetToken(emamil, pwd);
|
var i = 0;
|
///循环3次后不再获取
|
while (string.IsNullOrWhiteSpace(token) && i < 3)
|
{
|
token = GetToken(emamil, pwd);
|
i++;
|
}
|
MemcachedHelper.instance.Set(tokenkey, token);
|
}
|
return token;
|
|
}
|
|
}
|
|
/// <summary>
|
/// 获取token
|
/// </summary>
|
/// <param name="email"></param>
|
/// <param name="pwd"></param>
|
/// <returns></returns>
|
public static string GetToken(string email, string pwd)
|
{
|
var parm = "email=" + email.Trim2();
|
parm += "&pwd=" + System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(pwd, "MD5").ToLower();
|
parm += "×tamp=" + GetTimestamp();
|
var result = HttpRequestHelper.DoPost(ApiRoot + "api/Mb/GetToken", parm, "utf-8");
|
if (!string.IsNullOrWhiteSpace(result))
|
{
|
var json = Newtonsoft.Json.JsonConvert.DeserializeObject<AllpcbApiResponseInfo>(result);
|
if (json.code == 100)
|
return json.message;
|
}
|
return "";
|
}
|
/// <summary>
|
/// 计价:/api/Pcb/PcbQuote
|
/// </summary>
|
/// <param name="email"></param>
|
/// <param name="pwd"></param>
|
/// <returns></returns>
|
public static AllpcbApiResponseInfo PcbQuote(string email, string pwd)
|
{
|
var parm = "";
|
|
var result = HttpRequestHelper.DoPost(ApiRoot + "/api/Pcb/PcbQuote", parm);
|
var json = Newtonsoft.Json.JsonConvert.DeserializeObject<AllpcbApiResponseInfo>(result);
|
return json;
|
}
|
/// <summary>
|
/// 获取时间戳
|
/// </summary>
|
private static long GetTimestamp()
|
{
|
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
|
return Convert.ToInt64((DateTime.Now - startTime).TotalMilliseconds);
|
}
|
|
}
|
|
|
public class AllpcbApiResponseInfo
|
{
|
public int code { get; set; }
|
public string message { get; set; }
|
public object data { get; set; }
|
|
}
|
}
|