示例#1
0
        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);
        }
示例#2
0
        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);
        }