/// <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; } }
/// <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; } }
/// <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) { 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; } }
/// <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); }