wyb
2021-05-11 49ce087bd2a34a150597e1cc1da157af242c0b6d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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 += "&timestamp=" + 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; }
 
    }
}