/// <summary> /// 快递100电子面单 /// </summary> /// <param name="pms">参数</param> /// <returns></returns> /// <remarks> 2017-12-13 廖移凤</remarks> public override KdOrderNums OrderTracesSubByJson(KdOrderParam pms) { string pm = SendData.ObjectToJson(pms); long epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;//时间戳 Dictionary <string, string> param = new Dictionary <string, string>(); string dataSign = SendData.Encrypt(pm, epoch, Config.Kd100.Key, Config.Kd100.Secret, "UTF-8"); param.Add("sign", HttpUtility.UrlEncode(dataSign, Encoding.UTF8)); param.Add("key", Config.Kd100.Key); param.Add("t", epoch.ToString()); param.Add("param", pm); string result = SendData.SendPost(Config.Kd100.ReqURL, param); JObject jo = (JObject)JsonConvert.DeserializeObject(result);//解析JSON字符串 var result1 = jo["data"]; var templateurl = result1[0]["templateurl"]; KdOrderNums kn = new KdOrderNums() { destCode = result1[0]["destCode"].ToString(), destSortingCode = result1[0]["destSortingCode"].ToString(), expressCode = result1[0]["expressCode"].ToString(), kdOrderNum = result1[0]["kdOrderNum"].ToString(), kuaidinum = result1[0]["kuaidinum"].ToString(), payaccount = result1[0]["payaccount"].ToString() }; if (templateurl != null) { kn.templateurl = templateurl.ToString(); } return(kn); }
/// <summary> /// 电子面单 /// </summary> /// <returns></returns> public KdOrderNums OrderTracesSubByJson(KdOrderParam pms) { return(null); // //电商ID // string key = "ntSFshOu7046"; ////电商加密私钥 // string secret = "2adc1f47936543debdf2bff890828dbb"; ////请求url // string ReqURL = "http://api.kuaidi100.com/eorderapi.do?method=getElecOrder"; // string pm = ObjectToJson(pms); // long epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;//时间戳 // Dictionary<string, string> param = new Dictionary<string, string>(); // string dataSign = Encrypt(pm, epoch, key,secret, "UTF-8"); // param.Add("sign", HttpUtility.UrlEncode(dataSign, Encoding.UTF8)); // param.Add("key", key); // param.Add("t", epoch.ToString()); // param.Add("param", pm); // string result = SendPost(ReqURL, param); // JObject jo = (JObject)JsonConvert.DeserializeObject(result);//解析JSON字符串 // var result1 = jo["data"]; // var templateurl = result1[0]["templateurl"]; // KdOrderNums kn = new KdOrderNums() // { // destCode = result1[0]["destCode"].ToString(), // destSortingCode = result1[0]["destSortingCode"].ToString(), // expressCode = result1[0]["expressCode"].ToString(), // kdOrderNum = result1[0]["kdOrderNum"].ToString(), // kuaidinum = result1[0]["kuaidinum"].ToString(), // payaccount = result1[0]["payaccount"].ToString() // }; // if (templateurl != null) // { // kn.templateurl = templateurl.ToString(); // } // return kn; //} //public static string SendPost(string url, Dictionary<string, string> param) //{ // string result = ""; // StringBuilder postData = new StringBuilder(); // if (param != null && param.Count > 0) // { // foreach (var p in param) // { // if (postData.Length > 0) // { // postData.Append("&"); // } // postData.Append(p.Key); // postData.Append("="); // postData.Append(p.Value); // } // } // byte[] byteData = Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString()); // try // { //发送请求 // HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); // request.ContentType = "application/x-www-form-urlencoded"; // //request.Referer = url; // request.Timeout = 30 * 1000; // request.Method = "POST"; // Stream stream = request.GetRequestStream(); // stream.Write(byteData, 0, byteData.Length); // //发送成功后接收返回的XML信息 // HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Stream backStream = response.GetResponseStream(); // StreamReader sr = new StreamReader(backStream, Encoding.GetEncoding("UTF-8")); // result = sr.ReadToEnd(); // } // catch (Exception ex) // { // result = ex.Message; // } // return result; //} ///// <summary> /////Sign ///// <param name="content">内容</param> ///// <param name="epoch">时间戳</param> ///// <param name="keyValue">key</param> ///// <param name="secret">secret</param> ///// <param name="charset">URL编码</param> ///// <returns>Sign签名</returns> //public static string Encrypt(String content, long epoch, String keyValue, string secret, String charset) //{ // if (keyValue != null) // { // return MD5(content + epoch + keyValue + secret, 32); // } // return MD5(content, 32); //} /////<summary> ///// 字符串MD5加密(大寫) /////</summary> /////<param name="str">要加密的字符串</param> /////<param name="code">加密成多少位</param> /////<returns>密文</returns> //public static string MD5(string str, int code) //{ // if (code == 16) //16位MD5加密(取32位加密的9~25字符) // { // return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToUpper().Substring(8, 16); // } // else//32位加密 // { // return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToUpper(); // } //} ///// <summary> ///// 从一个对象信息生成Json串 ///// </summary> ///// <param name="obj">对象</param> ///// <returns>Json串</returns> //public static string ObjectToJson(object obj) //{ // DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); // MemoryStream stream = new MemoryStream(); // serializer.WriteObject(stream, obj); // byte[] dataBytes = new byte[stream.Length]; // stream.Position = 0; // stream.Read(dataBytes, 0, (int)stream.Length); // return Encoding.UTF8.GetString(dataBytes); //} ///// <summary> ///// 从一个Json串生成对象信息 ///// </summary> ///// <param name="jsonString">Json串</param> ///// <param name="obj">对象</param> ///// <returns>对象</returns> //public static object JsonToObject(string jsonString, object obj) //{ // DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); // MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); // return serializer.ReadObject(mStream); //} }
/// <summary> /// 快递100电子面单 /// </summary> /// <param name="pms">参数</param> /// <returns></returns> /// <remarks> 2017-12-13 廖移凤</remarks> public abstract KdOrderNums OrderTracesSubByJson(KdOrderParam pms);