public ResponseInfo <CreateOrderOrderResult> CreateOrder(OrderInfo orderinfo) { _log.Debug("order data:" + JsonConvert.SerializeObject(orderinfo)); ApiSetting setting = new ApiSetting(null); if (string.IsNullOrWhiteSpace(orderinfo.memberId)) { orderinfo.memberId = setting.DefaultMemberId; orderinfo.memberName = "匿名用户"; } var datmap = new CreateOrderDatamap() { memberId = orderinfo.memberId, orderList = new OrderInfo[] { orderinfo } }; var response = SecurityHttpClient.Post <CreateOrderDatamap, CreateOrderOrderResult>(setting.JavaOrder_Uri + "generateOrder", datmap); if (response == null) { throw new ApplicationException("调用java下单接口失败!"); } if (response.respCode != "0") { throw new ApplicationException("调用java下单接口失败!" + response.respCode + ":" + response.respMsg); } if (response.dataMap == null) { throw new ApplicationException("调用java下单接口失败!返回数据为null"); } response.dataMap.orderId = response.dataMap.orderIds.First().Value; return(response); }
public CreateOrderResponse CreateOrder(OrderInfo orderinfo) { _log.Debug("order data:" + JsonConvert.SerializeObject(orderinfo)); //orderinfo.memberId = "LM00013564"; if (string.IsNullOrWhiteSpace(orderinfo.memberId)) { orderinfo.memberId = DefaultMemberId; orderinfo.memberName = "匿名用户"; } var password = GetPassword(orderinfo.memberId); var datetime = DateTime.Now; var datmap = new CreateOrderDatamap() { memberId = orderinfo.memberId, orderList = new OrderInfo[] { orderinfo } }; var request = new CreateOrderRequest { dataMap = datmap, sign = BuildSign(datmap, datetime, password), reqTime = datetime.ToString(DateTimeFormat) }; var jSetting = new JsonSerializerSettings(); jSetting.NullValueHandling = NullValueHandling.Ignore; var content = JsonConvert.SerializeObject(request, jSetting); _log.Debug("Post data:" + content); var config = new CommonConfig(null); var req = (HttpWebRequest)WebRequest.Create(config.JavaOrder_Uri + "generateOrder"); req.Method = "POST"; req.ContentType = "Application/Json"; req.Credentials = CredentialCache.DefaultCredentials; req.Timeout = 300000; // 如果服务器返回错误,他还会继续再去请求,不会使用之前的错误数据,做返回数据 //req.ServicePoint.Expect100Continue = false; WriteRequestData(req, content); var response = req.GetResponse(); if (response == null) { throw new Exception("请求失败!"); } var stream = response.GetResponseStream(); if (stream == null) { throw new Exception("请求Stream为空!"); } var sr = new StreamReader(stream, Encoding.UTF8); var retXml = sr.ReadToEnd(); sr.Close(); _log.Debug(retXml); var obj = JsonConvert.DeserializeObject <CreateOrderResponse>(retXml); if (obj.respCode != "0") { throw new ApplicationException(obj.respMsg); } obj.dataMap.orderId = obj.dataMap.orderIds.First().Value; return(obj); }