예제 #1
0
 public static void SaveMallOrder(Mall_Order order)
 {
     try
     {
         bool can_socket_notify = false;
         if (order.OrderStatus != 1 || string.IsNullOrEmpty(order.TradeNo))
         {
             return;
         }
         int PayStatus = APPCode.PaymentHelper.OrderQuery(order.TradeNo);
         if (PayStatus != 2)
         {
             return;
         }
         var payment = Foresight.DataAccess.Payment.GetPaymentByTradeNo(order.TradeNo);
         if (payment != null)
         {
             if (payment.Status != 1)
             {
                 return;
             }
         }
         Payment.CompletePayment(TradeNo: order.TradeNo, payment: payment, order: order);
         Mall_UserBalance.GetEarnThroughBuy(order, payment);
         if (can_socket_notify)
         {
             APPCode.SocketNotify.PushSocketNotifyAlert(type: Utility.EnumModel.SocketNotifyDefine.notifyorderpaied);
         }
     }
     catch (Exception ex)
     {
         LogHelper.WriteError("PaymentHelper.css", "SaveMallOrder", ex);
     }
 }
예제 #2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         LogHelper.WriteDebug("支付宝APP订单支付异步", "支付宝APP异步---------++++++++++++++++++");
         IDictionary <string, string> paramsMap = new Dictionary <string, string>();
         NameValueCollection          coll;
         coll = Request.Form;
         String[] requestItem = coll.AllKeys;
         for (int i = 0; i < requestItem.Length; i++)
         {
             paramsMap.Add(requestItem[i], coll[requestItem[i]]);
         }
         LogHelper.WriteInfo("paramsMap", JsonConvert.SerializeObject(paramsMap));
         string publicKey = AlipayConfig.mobile_public_key_value;
         bool   checkSign = AlipaySignature.RSACheckV1(paramsMap, publicKey, AlipayConfig.charset, AlipayConfig.sign_type, false);
         if (!checkSign)
         {
             LogHelper.WriteDebug("验签失败", "验签失败---------");
             Response.Write("failure");
             Response.End();
             return;
         }
         string trade_status = paramsMap["trade_status"].ToString();
         if (!trade_status.ToLower().Equals("trade_success"))
         {
             Response.Write("failure");
             Response.End();
             return;
         }
         string tradeno = paramsMap["out_trade_no"].ToString();
         var    payment = Foresight.DataAccess.Payment.GetPaymentByTradeNo(tradeno);
         if (payment == null)
         {
             LogHelper.WriteDebug("Payment不存在", "Payment不存在---------");
             Response.Write("failure");
             Response.End();
             return;
         }
         Foresight.DataAccess.Payment.Insert_Payment(payment.Amount, payment.PaymentType, payment.TradeNo, payment.Status, payment.AddUser, payment.Remark, ResponseContent: payment.ResponseContent, payment: payment, CanSave: true);
         var order = Foresight.DataAccess.Mall_Order.GetMall_OrderByTradeNo(tradeno, OrderID: payment.OrderID);
         if (order == null)
         {
             LogHelper.WriteDebug("订单不存在", "订单不存在---------");
             Response.Write("failure");
             Response.End();
             return;
         }
         if (order.OrderStatus != 1)
         {
             LogHelper.WriteDebug("订单状态不是未支付", "订单状态不是未支付---------");
             Response.Write("failure");
             Response.End();
             return;
         }
         if (payment.Status != 1)
         {
             Response.Write("failure");
             Response.End();
             return;
         }
         Payment.CompletePayment(TradeNo: tradeno, payment: payment, order: order);
         bool can_socket_notify = false;
         if (order.ProductTypeID != 10)
         {
             can_socket_notify = true;
         }
         Mall_UserBalance.GetEarnThroughBuy(order, payment);
         if (can_socket_notify)
         {
             APPCode.SocketNotify.PushSocketNotifyAlert(Utility.EnumModel.SocketNotifyDefine.notifyorderpaied);
         }
         //var history_count = Foresight.DataAccess.RoomFeeHistory.GetRoomFeeHistoryCountByTradeNo(tradeno, OrderID: order.ID);
         //if (history_count > 0)
         //{
         //    Response.Write("failure");
         //    Response.End();
         //    return;
         //}
         var fee_count = Foresight.DataAccess.RoomFee.GetRoomFeeCountByTradeNo(tradeno, OrderID: order.ID);
         if (fee_count > 0)
         {
             Web.APPCode.PaymentHelper.SaveRoomFee(tradeno, "APP支付宝支付", "支付宝");
         }
         else
         {
             Payment.CompletePayment(TradeNo: tradeno, payment: payment, order: order);
         }
         Response.Write("success");
         Response.End();
         return;
     }
     catch (Exception ex)
     {
         LogHelper.WriteError("Web.Recive.alipay", "paycallbackapp", ex);
         Response.Write("success");
         Response.End();
         return;
     }
 }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                string return_code = string.Empty;
                string return_msg  = string.Empty;
                string sign        = string.Empty;
                LogHelper.WriteDebug("APP微信异步订单支付", "APP微信异步---------++++++++++++++++++");
                var          form   = HttpContext.Current.Request;
                var          xml    = new XmlDocument();
                Stream       stream = form.InputStream;         //获取响应的字符串流
                StreamReader sr     = new StreamReader(stream); //创建一个stream读取流
                string       html   = sr.ReadToEnd();           //从头读到尾,放到字符串html
                xml.LoadXml(html);
                //对请求返回值 进行处理
                var root = xml.DocumentElement;
                Dictionary <string, string> paramsMap = new Dictionary <string, string>();
                foreach (XmlNode node in root.ChildNodes)
                {
                    LogHelper.WriteDebug(node.Name + ":", node.InnerText);

                    if (node.Name != "sign")
                    {
                        paramsMap.Add(node.Name, node.InnerText);
                    }
                    else
                    {
                        sign = node.InnerText;
                    }
                }
                var _sign = Web.APPCode.WeixinHelper.GetAPPSignString(paramsMap);
                if (_sign != sign)///签名验证成功
                {
                    LogHelper.WriteDebug("签名验证失败", sign + "---------" + _sign);
                    return_code = "FAIL";
                    return_msg  = "签名验证失败";
                    Response.Write("<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>");
                    Response.End();
                    return;
                }
                string tradeno = paramsMap["out_trade_no"].ToString();
                var    payment = Foresight.DataAccess.Payment.GetPaymentByTradeNo(tradeno);
                if (payment == null)
                {
                    return_code = "SUCCESS";
                    return_msg  = "订单已支付";
                    Response.Write("<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>");
                    Response.End();
                    return;
                }
                Foresight.DataAccess.Payment.Insert_Payment(payment.Amount, payment.PaymentType, payment.TradeNo, payment.Status, payment.AddUser, payment.Remark, ResponseContent: payment.ResponseContent, payment: payment, CanSave: true);
                if (payment.Status != 1)
                {
                    return_code = "SUCCESS";
                    return_msg  = "订单已支付";
                    Response.Write("<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>");
                    Response.End();
                    return;
                }
                var order = Foresight.DataAccess.Mall_Order.GetMall_OrderByTradeNo(tradeno, OrderID: payment.OrderID);
                if (order == null)
                {
                    return_code = "SUCCESS";
                    return_msg  = "订单已支付";
                    Response.Write("<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>");
                    Response.End();
                    return;
                }
                if (order.OrderStatus != 1)
                {
                    return_code = "SUCCESS";
                    return_msg  = "订单已支付";
                    Response.Write("<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>");
                    Response.End();
                    return;
                }
                Payment.CompletePayment(TradeNo: tradeno, order: order, payment: payment);
                bool can_socket_notify = false;
                if (order.ProductTypeID != 10)
                {
                    can_socket_notify = true;
                }
                Mall_UserBalance.GetEarnThroughBuy(order, payment);
                if (can_socket_notify)
                {
                    APPCode.SocketNotify.PushSocketNotifyAlert(Utility.EnumModel.SocketNotifyDefine.notifyorderpaied);
                }
                //var history_count = Foresight.DataAccess.RoomFeeHistory.GetRoomFeeHistoryCountByTradeNo(tradeno, OrderID: order.ID);
                //if (history_count > 0)
                //{
                //    LogHelper.WriteDebug("订单已支付", "订单已支付---------");
                //    return_code = "SUCCESS";
                //    return_msg = "订单已支付";
                //    Response.Write("<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>");
                //    Response.End();
                //    return;
                //}
                var fee_count = Foresight.DataAccess.RoomFee.GetRoomFeeCountByTradeNo(tradeno, OrderID: order.ID);
                if (fee_count > 0)
                {
                    Web.APPCode.PaymentHelper.SaveRoomFee(tradeno, "APP微信支付", "微信支付");
                }
                else
                {
                    Payment.CompletePayment(TradeNo: tradeno, payment: payment, order: order);
                }
                return_code = "SUCCESS";
                return_msg  = "订单已支付";
                Response.Write("<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>");
                Response.End();
                return;
            }
            catch (Exception ex)
            {
                LogHelper.WriteError("Web.Recive.wx", "paycallbackapp", ex);
                Response.Write("<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[FAIL]]></return_msg></xml>");
                Response.End();
                return;
            }
        }