예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            CommOrderBll obll    = new CommOrderBll();
            string       orderId = Request.QueryString["orderId"];

            CommOrderModel            model = obll.GetModel(orderId);
            List <CommOrderItemModel> items = obll.GetOrderItems(orderId);
            string subject   = String.Join(",", (from s in items select s.ProductName).ToArray());
            int    quantity  = (from s in items select s.Quantity).Sum();
            string paymethod = (model.ShipMethod == ShipMethodType.EMS?"EMS":"Express");

            subject = String.IsNullOrEmpty(subject)?null:subject;
            string        agent = null;
            string        body  = null;
            AliPay        ap    = new AliPay();
            StandardGoods bp    = new StandardGoods(PayServiceType.trade_create_by_buyer.Key, AlipaySetting.Partner, AlipaySetting.NotifyUrl, AlipaySetting.ReturnUrl,
                                                    agent, AlipaySetting.EncodeType, AlipaySetting.Key, AlipaySetting.SignType, subject, body, model.OrderId,
                                                    model.Paysum, quantity, null, AlipaySetting.SellerEmail, null, null, null, null,
                                                    "POST", model.ShipFee, LogisticsPayment.SELLER_PAY.Key, "1");


            bp.Notify_Url      = AlipaySetting.NotifyUrl;
            bp.Return_Url      = AlipaySetting.ReturnUrl;
            bp.Receive_Address = model.FullAddress;
            bp.Receive_Phone   = model.RecieverPhone;
            bp.Receive_Zip     = model.Postalcode;
            bp.Receive_Name    = model.RecieverName;

            ap.CreateStandardTrade(AlipaySetting.PushUrl, bp, this);
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //可以在页面加载时设置页面的缓存为“SetNoStore()”,即无缓存
            Response.Cache.SetNoStore();

            if (CurrentShopCart == null)
            {
                Response.Write("购物车已清空,页面将<a href='../member/MyOrderList.aspx'>跳转</a>至账户中心!");
                Response.AddHeader("REFRESH", "3;URL='../member/MyOrderList.aspx'");
                Response.End();
            }

            if (!IsPostBack)
            {
                litSavedOrderId.Text = CurrentShopCart.RecentSavedOrderId.ToString();
                Context.Items.Remove("SavedOrderId");

                CommOrderBll   cobll = new CommOrderBll();
                CommOrderModel model = cobll.GetModel(litSavedOrderId.Text);
                if (model != null && String.IsNullOrEmpty(model.PayorderId) && model.PayMethod == PayMethType.支付宝)
                {
                    string url = "../alipay/StandardPay.aspx?orderId=" + litSavedOrderId.Text;
                    Response.Write("订单已生成,页面将<a href='" + url + "'>跳转</a>支付页面!");
                    Response.AddHeader("REFRESH", "3;URL='" + url + "'");
                }
            }
        }
예제 #3
0
        /// <summary>
        /// 置为退款完成,前置条件:退款申请中订单,不包括货到付款订单
        /// 如果是线上支付订单,需要调用接口完成退款操作(目前暂无接口)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAskRefund_Click(object sender, EventArgs e)
        {
            CommOrderBll      obll  = new CommOrderBll();
            OrderChangeLogBll lbll  = new OrderChangeLogBll();
            CommOrderModel    order = obll.GetModel(lblOrderId.Text);

            if (order != null && order.PayMethod != PayMethType.货到付款 && order.PayStatus == PayStatus.支付成功)
            {
                obll.ChangePayStatus(order.OrderId, PayStatus.退款申请中);
                lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), PayStatus.退款申请中.ToString(),
                         Context.User.Identity.Name);
                ShowOrderInfo(lblOrderId.Text);
            }
        }
        /// <summary>
        /// 置为订单完成,前置条件:物流已到货,且支付成功
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnFinish_Click(object sender, EventArgs e)
        {
            CommOrderBll      obll  = new CommOrderBll();
            OrderChangeLogBll lbll  = new OrderChangeLogBll();
            CommOrderModel    order = obll.GetModel(lblOrderId.Text);

            if (order != null && order.OrderStatus == OrderStatus.物流到货 && order.PayStatus == PayStatus.支付成功)
            {
                obll.ChangeOrderStatus(order.OrderId, OrderStatus.交易完成);
                lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), OrderStatus.交易完成.ToString(),
                         Context.User.Identity.Name);
                ShowOrderInfo(lblOrderId.Text);
            }
        }
        /// <summary>
        /// 置为备货状态,前置条件为:订单为初始创建,如果是货到付款,不需要判断支付状态,其他的需要为已支付状态
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnPrepareGoods_Click(object sender, EventArgs e)
        {
            CommOrderBll      obll  = new CommOrderBll();
            OrderChangeLogBll lbll  = new OrderChangeLogBll();
            CommOrderModel    order = obll.GetModel(lblOrderId.Text);

            if (order != null && order.OrderStatus == OrderStatus.已创建 &&
                (order.PayMethod == PayMethType.货到付款 || order.PayStatus == PayStatus.支付成功))
            {
                obll.ChangeOrderStatus(order.OrderId, OrderStatus.备货中);
                lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), OrderStatus.备货中.ToString(),
                         Context.User.Identity.Name);
                ShowOrderInfo(lblOrderId.Text);
            }
        }
        /// <summary>
        /// 置为交易失败,前置条件为:货到付款订单,已发货;其他订单,已退款
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnFail_Click(object sender, EventArgs e)
        {
            CommOrderBll      obll  = new CommOrderBll();
            OrderChangeLogBll lbll  = new OrderChangeLogBll();
            CommOrderModel    order = obll.GetModel(lblOrderId.Text);

            if (order != null &&
                ((order.PayMethod == PayMethType.货到付款 && order.OrderStatus == OrderStatus.已发货) ||
                 (order.PayMethod != PayMethType.货到付款 && order.PayStatus == PayStatus.退款完成)))
            {
                obll.ChangeOrderStatus(order.OrderId, OrderStatus.交易失败);
                lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), OrderStatus.交易失败.ToString(),
                         Context.User.Identity.Name);
                ShowOrderInfo(lblOrderId.Text);
            }
        }
예제 #7
0
        /// <summary>
        /// 置为买家签收(买家确认),隐含实现,如果为线上支付,则同时跳转至结算页面,前置条件:订单已发货
        /// 如果是货到付款订单,同时设置订单支付状态为已支付
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnCherrys_Click(object sender, EventArgs e)
        {
            CommOrderBll      obll  = new CommOrderBll();
            OrderChangeLogBll lbll  = new OrderChangeLogBll();
            CommOrderModel    order = obll.GetModel(lblOrderId.Text);

            if (order.OrderStatus == OrderStatus.已发货 || order.OrderStatus == OrderStatus.物流到货)
            {
                obll.ChangeOrderStatus(order.OrderId, OrderStatus.买家确认);
                lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), OrderStatus.买家确认.ToString(),
                         Context.User.Identity.Name);

                if (order.PayMethod == PayMethType.支付宝)
                {
                    // 转向支付结算页面
                }
                ShowOrderInfo(lblOrderId.Text);
            }
        }
예제 #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            CommOrderBll obll    = new CommOrderBll();
            string       orderId = Request.QueryString["orderId"];

            CommOrderModel            model = obll.GetModel(orderId);
            List <CommOrderItemModel> items = obll.GetOrderItems(orderId);
            string subject   = "test product";
            int    quantity  = 1;
            string paymethod = (model.ShipMethod == ShipMethodType.EMS ? "EMS" : "EXPRESS");

            //        StandardGoods bp = new StandardGoods(PayServiceType.trade_create_by_buyer.Key, AlipaySetting.Partner,
            //AlipaySetting.Key,
            //AlipaySetting.SignType,
            //subject, model.OrderId, model.Paysum, quantity, AlipaySetting.SellerEmail, AlipaySetting.SellerId,
            //"POST", model.ShipFee, LogisticsPayment.BUYER_PAY.Key, "1");


            //string logistics_type = "POST";
            //string logistics_fee = TextBox2.Text;
            //string logistics_payment = "BUYER_PAY";
            //string logistics_type_1 = "EXPRESS";
            //string logistics_fee_1 = TextBox3.Text;
            //string logistics_payment_1 = "BUYER_PAY";


            //bp.Notify_Url = AlipaySetting.NotifyUrl;
            //bp.Return_Url = AlipaySetting.ReturnUrl;

            //按时构造订单号;

            string out_trade_no = model.OrderId;
            //业务参数赋值;
            string gateway             = AlipaySetting.PushUrl; //'支付接口
            string service             = PayServiceType.trade_create_by_buyer.Key;
            string partner             = AlipaySetting.Partner; //partner		合作伙伴ID			保留字段
            string sign_type           = AlipaySetting.SignType;
            string body                = "test order";          //body			商品描述
            string payment_type        = "1";                   //支付类型
            string price               = model.Paysum.ToString("f2");
            string show_url            = "http://dingding.uncc.cn/";
            string seller_email        = AlipaySetting.SellerEmail; //卖家账号
            string key                 = AlipaySetting.Key;         //partner账户的支付宝安全校验码
            string return_url          = AlipaySetting.ReturnUrl;   //服务器通知返回接口
            string notify_url          = AlipaySetting.NotifyUrl;   //服务器通知返回接口
            string _input_charset      = AlipaySetting.EncodeType;
            string logistics_type      = "POST";
            string logistics_fee       = model.ShipFee.ToString("f2");
            string logistics_payment   = LogisticsPayment.BUYER_PAY.Key;
            string logistics_type_1    = null;
            string logistics_fee_1     = null;
            string logistics_payment_1 = null;


            MyAliPay ap        = new MyAliPay();
            string   aliay_url = ap.CreatUrl(
                gateway,
                service,
                partner,
                sign_type,
                out_trade_no,
                subject,
                body,
                payment_type,
                price,
                show_url,
                seller_email,
                key,
                return_url,
                _input_charset,
                notify_url,
                logistics_type,
                logistics_fee,
                logistics_payment,
                logistics_type_1,
                logistics_fee_1,
                logistics_payment_1,
                quantity.ToString()
                );

            Response.Redirect(aliay_url);
        }