Exemplo n.º 1
0
 /// <summary>
 /// Updates the state of the trading order.
 /// </summary>
 /// <param name="order">The order.</param>
 /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
 public bool UpdateTradingOrderState(Guid key, TradingOrderStatus status)
 {
     try
     {
         var serviceCore = new PaymentServiceCore();
         return(serviceCore.UpdateTradingOrderStateByKey(key, status));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Updates the state of the trading order.
 /// </summary>
 /// <param name="order">The order.</param>
 /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
 public bool UpdateTradingOrderState(Guid key, TradingOrderStatus status)
 {
     try
     {
         var serviceCore = new PaymentServiceCore();
         return serviceCore.UpdateTradingOrderStateByKey(key, status);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// Updates the trading order state by key.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="status">The status.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        public bool UpdateTradingOrderStateByKey(Guid key, TradingOrderStatus status)
        {
            try
            {
                using (var controller = new TradingOrderAccessController())
                {
                    return(controller.UpdateTradingOrderStateByKey(key, status));
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Updates the trading order state by key.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="status">The status.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        public bool UpdateTradingOrderStateByKey(Guid key, TradingOrderStatus status)
        {
            try
            {
                using (var controller = new TradingOrderAccessController())
                {
                    return controller.UpdateTradingOrderStateByKey(key, status);
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Updates the trading order state by key.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="status">The status.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        public bool UpdateTradingOrderStateByKey(Guid key, TradingOrderStatus status)
        {
            const string spName = "sp_UpdateTradingOrderStateByKey";

            key.CheckNullObject("key");

            try
            {
                List <SqlParameter> parameters = new List <SqlParameter>();
                parameters.Add(GenerateSqlSpParameter(column_Key, key));
                parameters.Add(GenerateSqlSpParameter(column_Status, (int)status));

                return(databaseOperator.ExecuteNonQuery(spName, parameters).DBToBoolean());
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Enables processing of HTTP Web requests by a custom HttpHandler that implements the <see cref="T:System.Web.IHttpHandler" /> interface.
        /// </summary>
        /// <param name="context">An <see cref="T:System.Web.HttpContext" /> object that provides references to the intrinsic server objects (for example, Request, Response, Session, and Server) used to service HTTP requests.</param>
        public override void ProcessRequest(HttpContext context)
        {
            TradingOrderStatus orderStatus  = TradingOrderStatus.Pending;
            string             returnResult = null;
            string             orderKey     = null;

            try
            {
                var requestUrl = context.Request.Url;
                var parameters = WebUtil.Instance.ConvertKeyValuePairCollectionFromString(requestUrl.Query.Trim('?'));

                if (parameters != null && parameters.Count > 0)
                {
                    if (this.IsNotificationAuthenticated(parameters))
                    {
                        XmlDocument xmlDoc = new XmlDocument();
                        xmlDoc.LoadXml(parameters["notify_data"]);

                        orderKey = xmlDoc.SelectSingleNode("/notify/out_trade_no").InnerText;
                        string tradeNumber = xmlDoc.SelectSingleNode("/notify/trade_no").InnerText;

                        string tradeStatus = xmlDoc.SelectSingleNode("/notify/trade_status").InnerText;
                        returnResult = tradeStatus;

                        if (tradeStatus == "TRADE_FINISHED" || tradeStatus == "TRADE_SUCCESS")
                        {
                            returnResult = "success";
                            orderStatus  = TradingOrderStatus.Succeed;
                        }
                    }
                    else
                    {
                        returnResult = "fail";
                        orderStatus  = TradingOrderStatus.Failed;
                    }
                }
                else
                {
                    returnResult = "无通知参数";
                }
            }

            catch (Exception ex)
            {
                returnResult = ex.ToString();
            }

            /*
             * update order status in DB
             */
            try
            {
                var service = new PaymentService();
                service.UpdateTradingOrderState(Guid.Parse(orderKey), orderStatus);
            }
            catch (Exception dbException)
            {
                Framework.Instance.HandleExceptionToServiceException("UpdateTradingOrderState", dbException, orderKey);
            }
            context.Response.ContentType = "text/plain";
            context.Response.Write(returnResult);
        }