예제 #1
0
        /// <summary>
        /// 获取交易结果。如果没有验证通过,直接返回交易不存在
        /// </summary>
        /// <param name="nvc">Request.Params</param>
        /// <returns></returns>
        public ShopOrder GetShopOrderResult(NameValueCollection nvc, bool isVerify)
        {
            if (nvc == null)
            {
                return(null);
            }

            if (!isVerify)
            {
                return(null);
            }

            //Set MySpaceOrderNo
            string out_trade_no = nvc["out_trade_no"];
            int    shopOrderId  = 0;

            int.TryParse(out_trade_no, out shopOrderId);

            if (shopOrderId <= 0)
            {
                return(null);
            }

            //try get shopOrder
            ShopOrder order =
                JaneShopOrdersDao.GetShopOrder(shopOrderId);

            if (order == null || order.Id <= 0)
            {
                return(null);
            }

            if (order.Payresult == PayResult.HasPay)//已经支付直接返回
            {
                return(order);
            }


            //Set ThirdPartyTradeStatus
            if (isVerify)
            {
                string trade_status = nvc["trade_status"];
                if (!string.IsNullOrEmpty(trade_status))
                {
                    trade_status = trade_status.ToUpper();
                    switch (trade_status)
                    {
                    case "TRADE_FINISHED":
                        //case "WAIT_SELLER_SEND_GOODS"://支付宝收到买家付款,请卖家发货
                        //case "WAIT_BUYER_CONFIRM_GOODS"://卖家已发货,买家确认中
                        //case "WAIT_SYS_PAY_SELLER"://买家确认收到货,等待支付宝付款给卖家
                        order.Payresult = PayResult.PayTradeSuccess;
                        break;

                    case "TRADE_CLOSED":    //交易中途关闭
                        order.Payresult = PayResult.PayFaild;
                        break;

                    default:    //处理中
                        order.Payresult = PayResult.None;
                        break;
                    }
                }
            }


            //Set  TotalFee
            string total_fee = nvc["total_fee"];
            double totalFee;

            if (double.TryParse(total_fee, out totalFee))
            {
                order.Paymoney = totalFee;
            }

            // cr.ThirdPartyOrderNo = nvc["trade_no"];
            // cr.AccountPaymentMedium = nvc["payment_type"];
            order.Paytype     = PayType.AliPay;
            order.Paythirdnum = nvc["trade_no"];
            order.Paydate     = DateTime.Now;
            order.Payremark   = PaymentHelper.GetDataString(nvc);


            return(order);
        }
예제 #2
0
 public ShopOrder GetUserShopCar(int userId)
 {
     return(JaneShopOrdersDao.GetUserShopCar(userId));
 }
예제 #3
0
 public List <ShopOrder> GetPagedShopOrderbyUser(PagingContext pager, int userid, OrderType ordertype)
 {
     return(JaneShopOrdersDao.GetPagedShopOrderbyUser(pager, userid, (int)ordertype));
 }
예제 #4
0
 public ShopOrder GetShopOrder(int id)
 {
     return(JaneShopOrdersDao.GetShopOrder(id));
 }
예제 #5
0
 public void DeleteShopOrder(int id)
 {
     JaneShopOrdersDao.DeleteShopOrder(id);
 }
예제 #6
0
 //订单
 #region JaneShopOrders
 public int SetShopOrder(ShopOrder item)
 {
     return(JaneShopOrdersDao.SetShopOrder(item));
 }