예제 #1
0
        private void FillFromFreedomHeader(DeliveryParameters deliveryParameters)
        {
            var orderApiClient = ByDesignAPIHelper.CreateOrderAPIClient();

            var responseOrderInfo = orderApiClient.GetOrderInfo_V2(orderApiClient.CreateCredentials(), deliveryParameters.OrderId);

            if (responseOrderInfo.Success == 0)
            {
                throw new InvalidOperationException(responseOrderInfo.Message);
            }

            deliveryParameters.Status       = responseOrderInfo.Status;
            deliveryParameters.ShipMethodId = responseOrderInfo.ShipMethodID;
            deliveryParameters.ShipMethod   = responseOrderInfo.ShipMethod;
        }
예제 #2
0
        private void FillItemWeights(DeliveryParameters deliveryParameters)
        {
            BiWellEntities db = new BiWellEntities();

            foreach (var item in deliveryParameters.Items)
            {
                var itemWeight = db.ItemWeights.Find(item.ItemId);
                if (itemWeight == null)
                {
                    throw new InvalidOperationException($"Весовая характеристика не найдена для {item.ItemId}: {item.Name}");
                }

                item.Weight = itemWeight.Weight;
            }
        }
예제 #3
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param"></param>
        /// <param name="auth"></param>
        /// <returns></returns>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            Result result     = new Result();
            var    urlstr     = url + "/Order/addShipGoods";
            var    parameters = new NameValueCollection {
                { "orderCode", param.MallOrderId },
                { "expressNo", param.HytExpressNo },
                { "key", key }
            };
            var rtn  = HttpHelper.PostData(urlstr, parameters);
            var json = JObject.Parse(rtn);

            result.Status     = Convert.ToBoolean(json["Status"].ToString());
            result.Message    = Convert.ToString(json["Message"].ToString());
            result.StatusCode = Convert.ToInt32(json["StatusCode"].ToString());
            return(result);
        }
예제 #4
0
        private List <DeliveryParameters> ReadOrdersToDeliveryEx()
        {
            //Stopwatch stopWatch = new Stopwatch();
            //stopWatch.Start();

            var result = new List <DeliveryParameters>();

            using (var context = new BiWellEntities())
            {
                context.Database.Log = s => Debug.WriteLine(s);

                //var dateFrom = DateTime.Today.AddDays(-Properties.Settings.Default.Freedom_RecentPeriodLength);

                var dbOrders = context.order_table
                               .Where(o => o.status == "Posted")
                               .Where(o => o.shipping_method_id != null)
                               .Where(o => o.shipping_method_id != Properties.Settings.Default.Freedom_SelfPickupShipMethodId)
                               .OrderByDescending(o => o.modified_at)
                               .Take(Properties.Settings.Default.BiWell_OrdersToDeliveryCount);

                foreach (var dbOrder in dbOrders)
                {
                    var orderToDelivery = new DeliveryParameters
                    {
                        OrderId    = dbOrder.order_id,
                        CreatedAt  = dbOrder.created_at,
                        ModifiedAt = dbOrder.modified_at
                    };

                    orderToDelivery.Status       = dbOrder.status;
                    orderToDelivery.ShipMethodId = dbOrder.shipping_method_id.Value;
                    orderToDelivery.ShipMethod   = context.shipping_method.FirstOrDefault(m => m.id == dbOrder.shipping_method_id.Value)?.description;

                    FillFromFreedomDetails(orderToDelivery);
                    FillItemWeights(orderToDelivery);

                    result.Add(orderToDelivery);
                }
            }

            //stopWatch.Stop();
            //TimeSpan ts = stopWatch.Elapsed;

            return(result);
        }
예제 #5
0
        private void FillCheckoutParameters(DeliveryParameters deliveryParameters, int orderId)
        {
            var checkoutApiClient = new RestClient(Properties.Settings.Default.CheckoutBaseUrl);
            var request           = new RestRequest("service/login/ticket/{apiKey}", Method.GET);

            request.AddUrlSegment("apiKey", Properties.Settings.Default.CheckoutApiKey);

            IRestResponse <TicketResponse> response = checkoutApiClient.Execute <TicketResponse>(request);
            TicketResponse ticketResponse           = response.Data;

            if (ticketResponse.error)
            {
                throw new InvalidOperationException("Ошибка получения сессионного ключа: " + ticketResponse.errorMessage);
            }

            deliveryParameters.ticket      = ticketResponse.ticket;
            deliveryParameters.callbackURL = $@"http://payment.biwell.ru/app/order/payment/{orderId}";
        }
예제 #6
0
        private List <DeliveryParameters> ReadOrdersToDelivery()
        {
            var result = new List <DeliveryParameters>();

            var orderApiClient = ByDesignAPIHelper.CreateOrderAPIClient();
            var orderApiCred   = orderApiClient.CreateCredentials();

            var requestOrderListRecent = new GetOrderListRecentRequest();

            requestOrderListRecent.Credentials          = orderApiCred;
            requestOrderListRecent.PeriodType           = Properties.Settings.Default.Freedom_RecentPeriodType;
            requestOrderListRecent.PeriodLength         = Properties.Settings.Default.Freedom_RecentPeriodLength;
            requestOrderListRecent.EvalDateLastModified = true;
            var responseOrderList = orderApiClient.GetOrderListRecent(requestOrderListRecent);

            foreach (var orderList in responseOrderList.GetOrderListRecentResult)
            {
                var orderToDelivery = new DeliveryParameters
                {
                    OrderId    = orderList.OrderID,
                    CreatedAt  = orderList.CreatedDate,
                    ModifiedAt = orderList.LastModifiedDate
                };

                FillFromFreedomHeader(orderToDelivery);

                if (orderToDelivery.IsPosted && !orderToDelivery.IsSelfPickup)
                {
                    FillFromFreedomDetails(orderToDelivery);
                    FillItemWeights(orderToDelivery);

                    result.Add(orderToDelivery);
                }
            }

            return(result);
        }
예제 #7
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <remarks>2016-6-11 杨浩 创建</remarks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var client = new HaiDaiApi(auth.DealerApp.AppSecret, auth.DealerApp.AppKey, auth.ShopAccount, auth.DealerApp.Extend.Trim());

            var result = new Result()
            {
                Status = false
            };


            var dicOrder = SetParameters(auth.AuthorizationCode);

            dicOrder.Add("shipNo", param.HytExpressNo);
            dicOrder.Add("shipType", param.CompanyCode);
            dicOrder.Add("sn", param.MallOrderId.ToString());
            //返回字段
            //订单号
            //测试服务器接口
            string url      = config.ApiUrlTest + "/api/depot/order!addShipGoods.do";
            var    response = client.ShipGoods(url, dicOrder);


            if (response.result == 1 || response.message.Contains("已发货"))
            {
                result.Status     = true;
                result.StatusCode = 1;
                result.Message    = response.message;
            }
            else
            {
                result.Status     = false;
                result.StatusCode = -1;
                result.Message    = response.message;
            }

            return(result);
        }
예제 #8
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <reamrks>2018-04-10 罗勤瑶 创建</reamrks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var result = new Result()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            //海外购订单发货
            GeGeJiaDeliverGoods req = new GeGeJiaDeliverGoods();

            //订单ID
            req.orderNumber = param.MallOrderId;
            //物流公司名称
            req.expressName = param.CompanyCode;
            //运单号
            req.expressNo = param.HytExpressNo;

            //订单类型,0:渠道订单,1:格格家订单,2:格格团订单,3:格格团全球购订单,4:环球捕手订单,5:燕网订单,6:b2b订单,7:手q,8:云店
            string parm = "{\"params\":{\"type\":1,\"orderNumber\":\"" + req.orderNumber + "\",\"expressName\":\"" + req.expressName + "\",\"expressNo\":\"" + req.expressNo + "\"},\"partner\":\"" + auth.DealerApp.AppSecret + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"}";

            //MD5加密签名
            string sign = MD5Encrypt(auth.DealerApp.AppKey + parm + auth.DealerApp.AppKey).ToUpper();

            var response = PostJson("http://openapi.gegejia.com:8902/api/order/sendOrder", parm, sign);

            var _response = JObject.Parse(response.ToString());

            if (_response.Property("errMsg") != null)
            {
                result.Status  = false;
                result.Message = _response.Property("errMsg").ToString();
                result.errCode = _response.Property("errCode").ToString();
            }
            return(result);
        }
예제 #9
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <reamrks>2017-08-16 杨浩 创建</reamrks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var result = new Result()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            string sendId  = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(100000, 999999).ToString();
            string signStr = "appKey=" + auth.DealerApp.AppKey + "&sendID=" + sendId + "&key=" + auth.DealerApp.AppSecret;
            string sign    = MD5Encrypt(signStr).ToUpper();

            var    companyArry   = param.CompanyCode.Split('_');
            string logisticsName = "";
            string logisticsCode = companyArry[0];

            if (companyArry.Length > 1)
            {
                logisticsName = companyArry[1];
            }


            string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

            xml += string.Format(@"<HipacPush>
  <Head>
    <version>1.0</version>
    <service>backLogisticNo</service>
    <sendID>{0}</sendID>  
    <appKey>{1}</appKey> 
    <sign>{2}</sign> 
  </Head>
  <Body>
    <Orders>
		<Order>
		  <orderNum>{3}</orderNum>
		  <LogisticsInfoList>
			  <LogisticsInfo>
				<logisticsName>{4}</logisticsName>
				<logisticsNo>{5}</logisticsNo>
				<logisticsCode>{6}</logisticsCode>
			  </LogisticsInfo>
		  </LogisticsInfoList>
		</Order>
	</Orders>
  </Body>  
</HipacPush>", sendId, auth.DealerApp.AppKey, sign, param.MallOrderId, logisticsName, param.HytExpressNo, logisticsCode);
            var    xms       = new XmlDocumentExtender();
            string resultStr = Hyt.Util.WebUtil.PostString(string.Format("http://gw.hipac.cn/pub/{0}04030302/transNotify.do", auth.ShopAccount), xml, "text/xml");

            xms.LoadXml(resultStr);

            /*
             *
             * <?xml version="1.0" encoding="UTF-8"?>
             * <HipacPush>
             * <Head>
             * <!-- 版本 默认为1.0 -->
             * <version>1.0</version>
             * <!-- 接口名称 -->
             * <service>backLogisticNo</service>
             * <!-- 推送报文唯一值YYYYDDMMHHmmss+6位随机数字 -->
             * <sendID>20171102152126152072</sendID>
             * <appKey>XYGS20171020</appKey>
             * <retCode>SUCCESS</retCode>
             * <sign>7CBCF21556820EEEF40528A6BF522727</sign>
             * </Head>
             * <Body>
             * <bizCode>SUCCESS</bizCode>
             * <bizMsg>成功</bizMsg>
             * <Order>
             * <!-- 订单编号 -->
             * <orderNum>YT201710311424931334</orderNum>
             * </Order>
             * </Body>
             * </HipacPush>
             *
             */
            var order = xms.SelectSingleNode("/HipacPush/Body");

            if (order["bizCode"].InnerText.ToUpper() != "SUCCESS")
            {
                result.Status  = false;
                result.Message = order["bizMsg"].InnerText;
            }

            return(result);
        }
예제 #10
0
        private void FillFromFreedomDetails(DeliveryParameters deliveryParameters)
        {
            var orderApiClient = ByDesignAPIHelper.CreateOrderAPIClient();

            var orderDetailsResponse = orderApiClient.GetOrderDetailsInfo_V2(orderApiClient.CreateCredentials(), deliveryParameters.OrderId);

            if (orderDetailsResponse.Success == 0)
            {
                throw new InvalidOperationException(orderDetailsResponse.Message);
            }

            List <DeliveryItem> deliveryItems = new List <DeliveryItem>();

            foreach (var responseItem in orderDetailsResponse.OrderDetailsResponse)
            {
                DeliveryItem deliveryItem = new DeliveryItem
                {
                    ItemId   = responseItem.ProductID,
                    Name     = responseItem.Description,
                    Quantity = responseItem.Quantity,
                    Cost     = decimal.Parse(responseItem.TaxableAmount, CultureInfo.InvariantCulture),
                    PayCost  = decimal.Parse(responseItem.TaxableAmount, CultureInfo.InvariantCulture)
                };

                FillItemCosts(deliveryItem);

                deliveryItems.Add(deliveryItem);
            }

            var responseOrderInfo = orderApiClient.GetOrderInfo_V2(orderApiClient.CreateCredentials(), deliveryParameters.OrderId);

            if (responseOrderInfo.Success == 0)
            {
                throw new InvalidOperationException(responseOrderInfo.Message);
            }

            OrderClientInfo   orderClientInfo = OrderClientInfo.ExtractFromOrder(responseOrderInfo); // extracting order client info
            var               onlineApiClient = ByDesignAPIHelper.CreateOnlineAPIClient();
            ClientContactInfo contactInfo     = new ClientContactInfo();

            if (orderClientInfo.IsRep)
            {
                var responseRepInfo = onlineApiClient.GetRepInfo_V3(onlineApiClient.CreateCredentials(), orderClientInfo.ClientNumber);
                if (responseRepInfo.Success == 0)
                {
                    throw new InvalidOperationException(responseOrderInfo.Message);
                }

                contactInfo.FirstName = responseRepInfo.Firstname;
                contactInfo.LastName  = responseRepInfo.Lastname;
                contactInfo.Email     = responseRepInfo.Email;
                contactInfo.Phone     = responseRepInfo.Phone1;
            }
            else
            {
                var responseCustInfo = onlineApiClient.GetCustomerInfo_v3(onlineApiClient.CreateCredentials(), orderClientInfo.ClientNumber);
                if (responseCustInfo.Success == 0)
                {
                    throw new InvalidOperationException(responseOrderInfo.Message);
                }

                contactInfo.FirstName = responseCustInfo.FirstName;
                contactInfo.LastName  = responseCustInfo.LastName;
                contactInfo.Email     = responseCustInfo.Email;
                contactInfo.Phone     = responseCustInfo.Phone1;
            }

            Address deliveryAddress = new Address
            {
                PostIndex = responseOrderInfo.ShipPostalCode,
                Country   = responseOrderInfo.ShipCountry,
                State     = responseOrderInfo.ShipState,
                Place     = responseOrderInfo.ShipCity,
                Street_1  = responseOrderInfo.ShipStreet1,
                Street_2  = responseOrderInfo.ShipStreet2
            };

            DeliveryRecipient recipient = new DeliveryRecipient
            {
                FullName = responseOrderInfo.ShipName1,
                Phone    = responseOrderInfo.ShipPhone,
                Email    = responseOrderInfo.ShipEmail
            };

            deliveryParameters.Items           = deliveryItems.ToArray();
            deliveryParameters.DeliveryAddress = deliveryAddress;
            deliveryParameters.Recipient       = recipient;
            deliveryParameters.ContactInfo     = contactInfo;

            var responseTotals = orderApiClient.GetTotals(orderApiClient.CreateCredentials(), deliveryParameters.OrderId);

            if (responseTotals.Success == 0)
            {
                throw new InvalidOperationException(responseTotals.Message);
            }

            deliveryParameters.ShippingTotal = decimal.Parse(responseTotals.ShippingTotal, CultureInfo.InvariantCulture);
        }
예제 #11
0
 public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
 {
     throw new NotImplementedException();
 }
예제 #12
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <reamrks>2017-08-16 黄杰 创建</reamrks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var result = new Result()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            #region 海外购订单出库
            //海外购订单出库
            var req = new OverseasOrderSopOutstorageRequest();
            //订单ID
            req.orderId = param.MallOrderId;
            //流水号
            req.tradeNo = "";

            var response = client.Execute(req, auth.AuthorizationCode, DateTime.Now.ToLocalTime());

            var _response = JObject.Parse(response.Body);

            #endregion

            //返回的错误,如果返回的结果为false的话,则进入这里面
            if (_response.Property("error_response") != null && _response["error_response"]["code"].ToString() != "10400001")
            {
                /*{
                 * "error_response": {
                 * "code": "10400001",
                 * "zh_desc": "63883901756订单已出库",
                 * "en_desc": "orders have been out of library"
                 * }
                 * }*/
                result.Status     = false;
                result.Message    = _response["error_response"]["zh_desc"].ToString() + "|code=" + _response["error_response"]["code"].ToString();
                result.StatusCode = int.Parse(_response["error_response"]["code"].ToString());
            }
            else
            {
                #region 海外购订单发货
                #region 京东快递获取

                /*
                 * {"logistics_list":[
                 *
                 * {"sequence":"3","logistics_id":463,"logistics_name":"圆通快递", "logistics_remark":"","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"6","logistics_id":465,"logistics_name":"邮政EMS","logistics_remark":"","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"8","logistics_id":467,"logistics_name":"顺丰快递","logistics_remark":"","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"9","logistics_id":1274,"logistics_name":"厂家自送","logistics_remark":"百世快递","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"11","logistics_id":1327,"logistics_name":"韵达快递","logistics_remark":"韵达物流","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"1","logistics_id":1499,"logistics_name":"中通速递","logistics_remark":"","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"2","logistics_id":1747,"logistics_name":"优速快递","logistics_remark":"","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"12","logistics_id":2094,"logistics_name":"快捷速递","logistics_remark":"新的快递公司","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"4","logistics_id":2170,"logistics_name":"邮政快递包裹","logistics_remark":"","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"7","logistics_id":313214,"logistics_name":"如风达","logistics_remark":"DHL德国邮政","agree_flag":"协议物流","is_cod":false},
                 * {"sequence":"13","logistics_id":332098,"logistics_name":"用户自提","logistics_remark":"百世汇通","agree_flag":"协议物流","is_cod":false}
                 *
                 * ] ,"vender_id":202210}
                 *
                 */
                //var logisticsReqs = new DeliveryLogisticsGetRequest();

                //var _res = client.Execute(logisticsReqs,auth.AuthorizationCode, DateTime.Now.ToLocalTime());
                #endregion

                //海外购订单发货
                var reqs = new OverseasOrderSopDeliveryRequest();
                //订单ID
                reqs.orderId = req.orderId;
                //物流公司ID
                reqs.logisticsId = param.CompanyCode;
                //运单号
                reqs.waybill = param.HytExpressNo;
                //流水号
                reqs.tradeNo = "";

                var responses = client.Execute(reqs, auth.AuthorizationCode, DateTime.Now.ToLocalTime());

                var _responses = JObject.Parse(responses.Body);

                #endregion

                //返回的错误
                if (_responses.Property("error_response") != null)
                {
                    string code = _response["error_response"]["code"].ToString();
                    if (code == "10400001")//已发货
                    {
                        result.Status = true;
                    }
                    else
                    {
                        result.Status = false;
                    }
                    result.Message    = _responses["error_response"]["zh_desc"].ToString() + "|code=" + code;
                    result.StatusCode = int.Parse(code);
                }
            }
            return(result);
        }
예제 #13
0
        /// <summary>
        /// 苏宁订单发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <remarks>2017-09-14 黄杰 创建</remarks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var result = new Result()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            #region 获取订单行项目号

            string appMethods      = "suning.custom.order.query";
            string appRequestTimes = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            string versionNos      = "v1.2";
            //orderStatus订单头状态(10:买家已付款,20:卖家已发货,21:部分发货,30:交易成功,40:交易关闭)
            string resparams = "<sn_request><sn_body><orderQuery><startTime>" + param.OrderParam.StartDate.ToString("yyyy-MM-dd HH:mm:ss") + "</startTime><pageNo>" + param.OrderParam.PageIndex + "</pageNo><pageSize>" + param.OrderParam.PageSize + "</pageSize><endTime>" + param.OrderParam.EndDate.ToString("yyyy-MM-dd HH:mm:ss") + "</endTime><orderStatus>10</orderStatus></orderQuery></sn_body></sn_request>";
            string formats   = "json";

            string signs     = getSignInfo(config.AppSecret, appMethods, appRequestTimes, config.AppKey, versionNos, resparams);
            string responses = GetPost(appMethods, config.AppKey, signs, resparams, appRequestTimes, formats, versionNos, config.ApiUrl);

            var trade = JObject.Parse(responses);

            var trades = trade["sn_responseContent"]["sn_body"]["orderQuery"];

            var paymentList = "";

            foreach (var i in trades)
            {
                //获取orderDetail的值
                var job = i["orderDetail"];

                for (int s = 0; s < job.Count(); s++)
                {
                    var item = job[s];

                    //获取b2c行项目号
                    paymentList = item["bLineNumber"].ToString();
                }
            }

            #endregion

            string appMethod      = "suning.custom.seaorderdelivery.add";
            string appRequestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            string versionNo      = "v1.2";
            //deliveryType发货方式按01:海外直邮方式发货02:商家保税区发货;03:苏宁保税区发货;
            string resparam = "<sn_request><sn_body><seaOrderDelivery><deliveryDetails><phoneIdentifyCode></phoneIdentifyCode><deliveryType>01</deliveryType><expressNo>" + param.HytExpressNo + "</expressNo><orderLineNumber>" + paymentList + "</orderLineNumber><expressCompanyCode>" + param.CompanyCode + "</expressCompanyCode></deliveryDetails><orderCode>" + param.MallOrderId + "</orderCode></seaOrderDelivery></sn_body></sn_request>";

            string format = "json";

            string sign     = getSignInfo(config.AppSecret, appMethod, appRequestTime, config.AppKey, versionNo, resparam);
            string response = GetPost(appMethod, config.AppKey, sign, resparam, appRequestTime, format, versionNo, config.ApiUrl);

            var _response = JObject.Parse(response.ToString());

            if (_response.Property("sn_responseContent") != null)
            {
                result.Status  = false;
                result.Message = "";//_response["sn_responseContent"]["sn_error"]["error_msg"].ToString();
                result.errCode = _response["sn_responseContent"]["sn_error"]["error_code"].ToString();
            }

            return(result);
        }